zoukankan      html  css  js  c++  java
  • 进制数位和的平均数

    [编程题] 进制均值

    时间限制: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)
  • 相关阅读:
    接口开发总结
    python多线程的坑
    ImageMagick 安装 window10与错误总结
    中文时间转换数字时间
    postgresql数据库中~和like和ilike的区别
    pdfplumber库解析pdf格式
    网络基础-数据通信过程
    渗透测试思路总述
    网络基础-OSI七层模型
    网络基础-常用网络测试工具
  • 原文地址:https://www.cnblogs.com/BetterThanEver_Victor/p/7487205.html
Copyright © 2011-2022 走看看