题目描述:
楼梯有n级台阶,上楼可以一步上1级,也可以一步上2级,计算有多少种不同的走法
其中n<=35
输入描述:
一个正整数n,占一行
输出描述:
一个整数,占一行,问题的结果,数据保证输出在32位有符号整型数据范围内。
样例输入:
20
33
样例输出:
10946
5702887
思想:巧妙利用了分治递归的思想,将大数 化为1和2两种情况,1只有一种情况,2有两种情况,设计巧妙。
1 #include<iostream> 2 using namespace std; 3 int fun(int n){ 4 if(n>0){ 5 if(n==1){ 6 return 1; 7 } 8 if(n==2){ 9 return 2; 10 } 11 else{ 12 return fun(n-1)+fun(n-2); 13 } 14 } 15 else{ 16 return 0; 17 } 18 } 19 int main(){ 20 int p,m; 21 while(cin>>p){//多组输入 22 m=fun(p); 23 cout<<m<<endl; 24 } 25 return 0; 26 }
原文地址:https://www.cnblogs.com/zq-dmhy/p/11015737.html
时间: 2024-11-08 02:08:45