先输入一个【1,20】范围内的整数n,然后用函数编程计算并输出s=1!+2!+...+n!的末6位(不含前导0)。若s不足6位,则直接输出s。不含前导0的意思是,如果末6位为001234,则只输出1234即可。要求程序具有防止非法字符输入和错误输入的能力,即如果用户输入了非法字符或者不在【1,20】范围内的整数,则提示用户重新输入数据。 输入 一个整数n 输出 计算出的s的末6位,不含前导0
时间: 2024-03-25 10:36:11 浏览: 81
编程实现计算:1!+2!+3!+……+N!的值,要求定义并调用函数计算N!。
5星 · 资源好评率100%
好的,以下是符合你要求的Python代码:
```python
def factorial(n):
if n == 0:
return 1
else:
return n * factorial(n - 1)
while True:
try:
n = int(input("请输入一个1~20之间的整数:"))
if n < 1 or n > 20:
raise ValueError("输入的整数不在1~20之间")
break
except ValueError:
print("输入错误,请重新输入")
s = sum(factorial(i) for i in range(1, n + 1))
s_str = str(s)[-6:]
s_int = int(s_str)
print(s_int)
```
首先定义了一个计算阶乘的函数`factorial`,然后使用一个循环,不断让用户输入一个1~20之间的整数,并且防止输入非法字符或者不在范围内的整数。当用户输入正确的整数n后,就计算1! + 2! + ... + n!的值s,并把s的末6位转为字符串,去掉前导0,最后输出结果。
阅读全文