问题描述:
n! 进制是指从数的最低位开始,第 i 位的权值是 (i+1)! ,第 i 位取值范围为 0 ~ i+1 , i 从 0 开始。
例如: n! 进制的 21 对应10进制的 5 , 计算方法为: 2×2!+1×1!=5 。 n! 进制的 120 对应10进制的 10 , 1×3!+2×2!+0×1!=10
python3.6实现如下:
import math def main(): n,c=get_data() num=[] for i in range(n): num.append(cal(c[i])) for k in range(n): print('case '+str(k)+':'+str(num[k])) def get_data(): n= eval(input()) c=[] for i in range(n): str_in = input() b = [int(n) for n in str_in.split()] c.extend(b) return n,c def cal(c): b=list(str(c)) n=len(b) sum=0 for i in range(n): sum+=int(b[-1-i])*math.factorial(i+1) return sum main()