1.兔子数列
#include<iostream>
using namespace std;
//函数功能:求斐波那契数列的某一项的值
//输入参数:第n个元素
int fib(int n){
if(n<=1) return 1;
return fib(n-1)+fib(n-2);//递归调用
}
int main(){
int m;
cin>>m;
m=fib(m);
//printf("%d ",m);
cout<<m<<endl;
return 0;
}
2.汉诺塔问题
#include<iostream>
#include<cmath>
using namespace std;
//函数功能:汉诺塔递归求解 移动路径和移动步数
//n:圆盘个数 x,y,z表示三个塔座
//n为1的移动情况
void move(char A,char C){
printf("%c---->%c\n",A,C);
}
void hannot_tower(int n,char x,char y,char z){
if(n==1) move(x,z);
else{
hannot_tower(n-1,x,z,y);//借助塔座C奖n-1个圆盘由A移动到B
move(x,z);//将第n个圆盘将塔座A移动到塔座C
hannot_tower(n-1,y,x,z);//借助塔座A将塔座B上的n-1个圆盘移动到塔座C
}
}
int main(){
int n;
char A='A',B='B',C='C';
int total_p;
cin>>n;
hannot_tower(n,A,B,C);
total_p=pow(2,n)-1;
printf("%d ",total_p);
}