c++ 递推
递推的概念
递推的概念——递推关系式
递推的概念——斐波那契(Fibonacci)数列
什么是顺推和逆推
顺推和逆推的应用——顺推
顺推(昆虫繁殖)——科学家
#include <iostream>
using namespace std;
int main(){
long long a[101]={0},b[101]={0};
int x,y,z;
cin>>x>>y>>z;
for(int i=1;i<=x; i++){
a[i]=1;
b[i]=0;}
for(int i=x+1; i<=z+1; i++){
b[i]=y*a[i-x];
a[i]=a[i-1]+b[i-2];}
cout<<a[z+1]<<endl;
return 0;
}
顺推和逆推的应用——逆推
#include <iostream>
using namespace std;
int main(){
int sum=0,n,a[1000]={};
cin>>n;
a[n]=1;
int i=n;
while(i>=0){
a[i-1]=a[i]*2+1;
i--;
}
cout<<a[0]<<endl;
return 0;
}
Hanoi塔问题
问题的提出:
汉诺塔由编号为n个大小不同的圆盘和三根柱子a,b,c组成。开始时,这n个圆盘由大到小依次套在a柱上,如图所示。要求把a柱上n个圆盘按下述规则移到c柱上:
Ø 一次只能移一个圆盘,它必须位于某个柱子的顶部;Ø 圆盘只能在三个柱上存放;Ø 任何时刻不允许大盘压小盘。问将这n个盘子从a柱移动到c柱上,最少需要移动多少次?
平面分割问题
Catalan数
第二类Stirling数