N!进制转化为10进制

xiaoxiao2021-02-28  138

问题描述:

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()

转载请注明原文地址: https://www.6miu.com/read-36402.html

最新回复(0)