阶乘和数(python3)
【问题描述】
⼀个正整数如果等于组成它的各位数字的阶乘之和,则该正整数称为阶乘和数。例如正整数145,1!+4!+5!等于145,因此145就是⼀个阶乘和数。输⼊⼀个正整
数,计算它的各位数字的阶乘之和,并判断它是否是⼀个阶乘和数。注意:输⼊的正整数,以及组成它的各位数字的阶乘之和都不会超过int类型的表⽰范围,
并且输⼊的正整数的最⾼位不为0。
【输⼊形式】
从控制台输⼊⼀个正整数。
【输出形式】
先输出输⼊的正整数和⼀个逗号",",并从个位开始输出组成该正整数的各位数字的阶乘(阶乘计算结果)相加的形式,然后输出等号"="和各位数字阶乘之和,
最后在下⼀⾏输出字符串"Yes"表⽰该正整数是阶乘和数,否则输出字符串"No"表⽰该正整数不是阶乘和数。
【输⼊样例1】
145
【输出样例1】
145,120+24+1=145
Yes
【输⼊样例2】
1400
【输出样例2】
1400,1+1+24+1=27
No
【输⼊样例3】
4
【输出样例3】
4,24=24
No
【样例说明】
样例1中输⼊的正整数为145,其个位为5,5的阶乘为120,⼗位为4,4的阶乘为24,百位为1,1的阶乘为1,这些阶乘之和为145,所
以145为阶乘和数。样例2中输⼊的正整数为1400,组成它的各位数字的阶乘之和为27,所以1400不是阶乘和数。样例3中输⼊的正整
数为4,组成它的只有⼀位数字,其阶乘为24,也不是阶乘和数。
【代码】
```py
deff(n):
sum=1
foriinrange(1,n+1):
sum*=i
returnsum
if__name__=='__main__':
n=input()
l=list(n)
e()
n=int(n)
sum=0
print("%d,"%n,end='')
foriinrange(len(l)):
l[i]=f(int(l[i]))
sum+=l[i]
ifi==0:
print("%d"%l[i],end='')
el:
print("+%d"%l[i],end='')
print("=%d"%sum)
ifn==sum:
print("Yes")
el:
print("No")
本文发布于:2022-11-14 03:17:17,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/88/15030.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |