递推算法简单来说就是找规律
现在我们来做一个简单的题目:
(本题目来自信息学奥赛一本通(C++版)在线评测系统----题号:2019)
思路:定义一个x,用来控制阶乘和;x2用来控制数到哪个数。
伪代码(给你一种思路,鼓励读者独立思考):
输入一个变量n
x = 1
x2 = 0
如果n等于一
打印n
否则
循环n次
x2等于x2加一
x等于x乘x2
打印x
阶乘学会了,下面学习阶乘和
(本题目来自信息学奥赛一本通(C++版)在线评测系统----题号:2026)
思路:
add = 1*1+2*1+3*2*1+4*3*2*1...
示例代码:
n = int(input())
add = 0
x = 1
x2 = 0
x3 = 0
x4 = 1
if n == 1:
print(n)
else:
for i in range(1, n + 1):
x2 += 1
for j in range(1, x2):
if j == 1:
x3 = x2
else:
x3 = x2 - 1
x4 = j*x3
add += x4
print(add)
上述代码用i进行1~n的遍历,j进行i的分支遍历:
在每一次i的值变化后,j就会进行分支遍历i
今日作业:
下课!