Python(1):上机练习——计算阶乘之和

题目:
给定n,计算1+2!+3!+…+n!的值
集成开发环境IDE:
Thonny
思路:
先计算n的阶乘,再把阶乘相加

计算n的阶乘:

n=int(input('n的值为:'))
i=1
jc=1
while i<n:
    jc=jc*(i+1)
    i=i+1
else:    
    print('n的阶乘是:',jc)

此部分代码调试无误,进行下一步

计算阶乘之和s:

n=int(input('n的值为:'))
i=1
s=0
while i<=n:
#(要把n!包括进去,所以加了个等号)
#计算i的阶乘为jc
  s=s+jc
  i=i+1
else:
  print('1+2!+3!+...+n!=',s)

汇总:

n=int(input('n的值为:'))
i=1
s=0
while i<=n:
    j=1
    jc=1
    while j<i:
        jc=jc*(j+1)
        j=j+1
    s=s+jc
    i=i+1
else:
    print('1+2!+3!+...+n!=',s)
    

发现的问题:

  1. python中不能使用i++语句
  2. 条件循环whlie使用时,可以没有else

想法:
用迭代循环for怎么做?

在网上看到了更简单的方法:
转自https://www.jb51.net/article/155790.htm

n = int(input())
jie = 1
sum = 0
i = 1
while n >= i:
  jie = jie * i
  sum = sum + jie
  i = i + 1
print(sum)

你可能感兴趣的:(Python学习,python)