进制均值(京东2017秋招真题)_python

思路:利用取余数方法可以得到转换进制之后数字表示的所有位数,本题只求和的平均值,可以不严格       考虑正排列或者逆排列

      之后使用fractions的Fraction函数,方便满足需要的分数格式要求



语句:fractions的Fraction函数  Fraction(a,b)中a表示分子,b表示分母



python代码:

# -*- coding: utf-8 -*-

import fractions as f
while 1:
    number=[]
    a=int(raw_input())
    b=a
    for i in range(2,a):
        while a !=0:
            mod=a%i
            number.append(mod)
            a=a/i
        a=b       #注意此处要改回之前输入的a值,代码中保存为b
    c=f.Fraction(sum(number),a-2)
    if c==int(c):
        print "%d/1" %c
    else:
        print c