一递归:
程序调用自身的编程技巧称为递归(百科解释)。也就是以相似的方式重复自身的 过程。在程序中表现为,在函数定义中直接或者间接的调用自身,常用的递归函数
特点:(A调用A)
分为“递推”和“回归”的过程,当“递推”到达底部时,也就是到达终止条件时,就会开始 “回归”,有去有回。
函数中的具体形式:
Void recurs (argumentlist)
{
Statements1;
If(test)
{
resurs(arguments);
statements2;
}
举例:
有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数, 他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一 个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?
:
二、迭代
迭代是重复反馈过程的活动,其目的通常是为了逼近所需目标或结果。每一次对过程 的重复称为一次“迭代”,而每一次迭代得到的结果会作为下一次迭代的初始值(百科)
特点:(A重复调用B)
对比:
递归和迭代实现斐波那契数列:
#include <iostream>
using namespace std;
int fibRecursion(int);
void fibInteration(int);
#define N 10
int main()
{
int i;
puts("两种方法实现长度为10的斐波那契数列:");
fibInteration(N);
for (i = 1; i <= N; i++)
cout << fibRecursion(i) << '\t';
return 0;
}
void fibInteration(int l)
{
int t1 = 1;
int t2 = 1;
int i, t;
for (i = 0; i < 10; i++)
{
cout << t1 << '\t';
t = t1 + t2;
t1 = t2;
t2 = t;
}
putchar('\n');
}
int fibRecursion(int i)
{
if (i < 2)
return i == 0 ? 0 : 1;
else
return fibRecursion(i - 1) + fibRecursion(i - 2);
}