爬楼梯

来源:互联网 发布:三千万光棍 知乎 编辑:程序博客网 时间:2024/06/02 08:17
题目描述:

N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式.

输入:

输入包括一个整数N,(1<=N<90)。

输出:

可能有多组测试数据,对于每组数据,
输出当楼梯阶数是N时的上楼方式个数。

样例输入:
               4
样例输出
              5
本题运用大数加法和非波那契树列
# include <stdio.h>int qingchu (int a[]){int q=0,i;for(i=0;i<204;i++){if(a[i]==0){q++;}if(a[i]!=0)break;}return q;}void jiafa (int c[][205]){int k=0,i,m=2;c[1][204]=1;c[0][204]=1;while(m!=200){for(i=204;i>=0;i--){c[m][i]=c[m-1][i]+c[m-2][i]+k;k=c[m][i]/10;c[m][i]=c[m][i]%10;}m++;   }}void palouti (int n){int i,c[205][205]={0};int a[205]={0},m[205]={0},b[205]={0},r;    jiafa(c);for(i=0;i<205;i++){m[i]=c[n][i];}r=qingchu(m);for(i=r;i<205;i++){printf("%d",m[i]);}printf("\n");}int main(){int n,c[205][205]={0};int m;while(scanf("%d",&n)!=EOF){palouti(n);    }    return 0;}

0 0
原创粉丝点击