B=0
A=1
m=int(input("input a number please "))
for k in range (1,m+1) :
for i in range (1,k+1) :
A=i*A
B=B+A
print("this is your number",B)
如果我输入4,这给了我418,它应该给我32,我在这里做错了什么?
我已经尝试了一切来纠正它
编辑:这是计算阶乘的总和,如果我输入4,它将计算1! + 2! + 3! + 4!
答案 0 :(得分:1)
您忘记在i循环之前将A
重置为1。正确答案应该是:
B=0
A=1
m=int(input("input a number please "))
for k in range (1,m+1):
A=1
for i in range (1,k+1):
A=i*A
B=B+A
print("this is your number",B)
答案 1 :(得分:1)
解决方案1
您可以使用:
math.factorial(x)
使用0
初始化一个总和,使用for循环并将上面一行的结果添加到总和中:
from math import factorial
s=0
m=4
for k in range (1,m+1) :
s=s+factorial(k)
print (s)
解决方案2
手动:
s=0
m=4
for i in range(1,m+1):
p=1
for k in range(1,i+1):
p*=k
s+=p
print (s)
答案 2 :(得分:0)
或者您可以尝试:
partial_sum = 0
current_factorial = 1
for i in range(1, int(input()) + 1):
current_factorial *= i
partial_sum += current_factorial
print(partial_sum)