• 进制数位和的平均数


    [编程题] 进制均值

    时间限制:1秒

    空间限制:32768K

    尽管是一个CS专业的学生,小B的数学基础很好并对数值计算有着特别的兴趣,喜欢用计算机程序来解决数学问题,现在,她正在玩一个数值变换的游戏。她发现计算机中经常用不同的进制表示一个数,如十进制数123表达为16进制时只包含两位数7、11(B),用八进制表示为三位数1、7、3,按不同进制表达时,各个位数的和也不同,如上述例子中十六进制和八进制中各位数的和分别是18和11,。 小B感兴趣的是,一个数A如果按2到A-1进制表达时,各个位数之和的均值是多少?她希望你能帮她解决这个问题? 所有的计算均基于十进制进行,结果也用十进制表示为不可约简的分数形式。 
    输入描述:
    输入中有多组测试数据,每组测试数据为一个整数A(1 ≤ A ≤ 5000).


    输出描述:
    对每组测试数据,在单独的行中以X/Y的形式输出结果。

    输入例子1:
    5
    3
    

    输出例子1:
    7/3
    2/1
    #encoding:utf-8
    _author_ = "Wang Wenchao"
    import sys
    def hcf(x, y):
        """该函数返回两个数的最大公约数"""
        # 获取最小值
        if x > y:
            smaller = y
        else:
            smaller = x
    
        for i in range(1, smaller + 1):
            if ((x % i == 0) and (y % i == 0)):
                hcf = i
        return hcf
    def jinZhiSum(J,N):
        sum=0
        while N>0:
            sum+=N%J
            N=N//J
        return sum
    def jinZhiAve(N):
        sum=0
        for j in range(2,N):
            sum+=jinZhiSum(j,N)
        h=hcf(sum,N-2)
        print str(sum/h)+'/'+str((N-2)/h)
    
    for number in sys.stdin:
        number=int(number.strip())
        if number!=0:
            jinZhiAve(number)
  • 相关阅读:
    面试点滴
    算法之归并排序
    博客园代码高亮样式更换-测试
    MacOS 10.12 设置找不到 任何来源 的话 这么操作 教程
    HTTP代理协议 HTTP/1.1的CONNECT方法
    Linux命令
    Linux命令
    Linux命令
    vmware虚拟机linux桥接模式设置
    GDB调试 (七)
  • 原文地址:https://www.cnblogs.com/BetterThanEver_Victor/p/7487205.html
Copyright © 2020-2023  润新知