问题描述:
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()