十进制转 n! 进制(python实现)

n! 进制

Time limit per test: 1.0 seconds

Memory limit: 256 megabytes

n!《十进制转 n! 进制(python实现)》 进制是指从数的最低位开始,第 i《十进制转 n! 进制(python实现)》 位的权值是 (i+1)!《十进制转 n! 进制(python实现)》,第 i《十进制转 n! 进制(python实现)》 位取值范围为 0《十进制转 n! 进制(python实现)》~i+1《十进制转 n! 进制(python实现)》i《十进制转 n! 进制(python实现)》 0《十进制转 n! 进制(python实现)》 开始。

例如:
n!《十进制转 n! 进制(python实现)》 进制的 21《十进制转 n! 进制(python实现)》 对应10进制的 5《十进制转 n! 进制(python实现)》, 计算方法为:2×2!+1×1!=5《十进制转 n! 进制(python实现)》
n!《十进制转 n! 进制(python实现)》 进制的 120《十进制转 n! 进制(python实现)》 对应10进制的 10《十进制转 n! 进制(python实现)》1×3!+2×2!+0×1!=10《十进制转 n! 进制(python实现)》

给你一个10进制数,求其 n!《十进制转 n! 进制(python实现)》 进制的值。

Input

第 1 行为一个整数 T《十进制转 n! 进制(python实现)》 (1T10)《十进制转 n! 进制(python实现)》,表示问题数。

接下来 T《十进制转 n! 进制(python实现)》 行,每行一个10进制的整数 n《十进制转 n! 进制(python实现)》0n3628799《十进制转 n! 进制(python实现)》 (10!1)《十进制转 n! 进制(python实现)》

Output

对于每个问题,输出一行问题的编号(0 开始编号,格式:case #0: 等),然后在一行中输出十进制数的对应的 n!《十进制转 n! 进制(python实现)》 进制数的值。

Examples

Input

5
0
1
10
100
3628799

Output

case #0:
0
case #1:
1
case #2:
120
case #3:
4020
case #4:
987654321

Note

n!《十进制转 n! 进制(python实现)》 表示 n《十进制转 n! 进制(python实现)》 的阶乘。

Source

2017 编程实训第二次机考 

python3代码实现:

import math
import itertools
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)+':')
        print(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
#将十进制转化成N!进制
def cal(c):
    b=list(str(c))#为了方便该数的长度
    n=len(b)
    a=int(c)
    e=[]
    for i in range(n+5)[::-1]:
        f =int(a / math.factorial(i + 1))#将数除以(i+1)的阶乘以得到转化后对应的第i位数值
        e.append(str(f))
        a=int(a%math.factorial(i + 1))
    s = int("".join(itertools.chain(*e)))#将列表中所有字符合并成一个字符串并把其转化成int型
    return s

main()
    原文作者:进制转换
    原文地址: https://blog.csdn.net/jgzquanquan/article/details/74932078
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞