您的位置:首页 > 其它

C N阶楼梯上楼问题(九度OJ 1205)

2016-09-28 18:48 274 查看
题目描述:
N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归)

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

输出:
可能有多组测试数据,对于每组数据,

输出当楼梯阶数是N时的上楼方式个数。

样例输入:
4


样例输出:
5


源代码:

#include <stdio.h>
int main()
{
int i;
int N;                          //N阶楼梯
long long int a[90];            //上楼方式数
while(scanf("%d",&N)!=EOF)
{
a[0]=1;
a[1]=2;
for(i=2;i<90;i++)
a[i]=a[i-1]+a[i-2];
printf("%lld\n",a[N-1]);
}
return 0;
}


程序截图:



PS:

1. 此问题可抽象转化为求斐波那契额数列通项问题(演算时在纸上写出n个1,这是一种方式;然后将相邻的两个1画圈,按照圈数不同又可得到其他方案)

2. 因为题中要求n<=90,当n较大的时候用int类型会出现超精度问题,故存上楼方式的数组定义为long long int型
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: