编程题

(项目情境)递归就是自己调用自己,它是设计和描述算法的一种有力工具,常常用

来解决比较复杂的问题。为求解规模为N 的问题,设法将它分解成规模较小的问题,从小

问题的解容易构造出大问题的解,并且这些规模问题较小的问题也能采用同样的分解方

法,分解成规模更小的问题,并能从这些更小问题的解构造出规模较大问题的解。一般情

况下,规模 N=1 时,问题的解是已知的。已知:从1 到 n 的连续自然数相乘的积、叫做阶

乘、用符号 n!表示。如 5!=1×2×3×4×5,规定 0!=1。我们用递归算法可以较容易求 n 的

阶乘。求 n 的阶乘算法可以描述如下:

n!=n*(n-1)! (n-1)!=(n-1)*(n-2)! (n-2)!=(n-2)*(n-3)!

2!=2*1! 1!=0! 0!=1

如果把 n!写成函数形式,即 f(n),f(n)=n*f(n-1)。如 f(5)就是表示 5!,求 5!的过程可以写成

如下形式:

f(5)=5*f(4) f(4)=4*f(3) f(3)=3*f(2) f(2)=2*f(1) f(1)=1

(问题求解)在 python 中用递归算法求 1!+2!+……+n!(n 的值为整数,从键盘输

入)。请编写合适的python程序完整。


查看答案
赣ICP备20007335号-2