C N阶楼梯上楼问题(九度OJ 1205)
2016-09-28 18:48
274 查看
题目描述:
N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归)
输入:
输入包括一个整数N,(1<=N<90)。
输出:
可能有多组测试数据,对于每组数据,
输出当楼梯阶数是N时的上楼方式个数。
样例输入:
样例输出:
源代码:
程序截图:
![](http://img.blog.csdn.net/20160928184510206?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
PS:
1. 此问题可抽象转化为求斐波那契额数列通项问题(演算时在纸上写出n个1,这是一种方式;然后将相邻的两个1画圈,按照圈数不同又可得到其他方案)
2. 因为题中要求n<=90,当n较大的时候用int类型会出现超精度问题,故存上楼方式的数组定义为long long int型
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型
相关文章推荐
- 九度OJ题目1205:N阶楼梯上楼问题
- 九度oj-1205-N阶楼梯上楼问题
- 九度OJ-1205:N阶楼梯上楼问题
- 【九度OJ】题目1205:N阶楼梯上楼问题 解题报告
- 九度 题目1205:N阶楼梯上楼问题
- 九度 题目1205:N阶楼梯上楼问题
- 题目1205:N阶楼梯上楼问题
- 1205 N阶楼梯上楼问题
- 九度OJ—题目1205:N阶楼梯上楼问题 (非递归)
- 1205_N阶楼梯上楼问题
- 题目1205:N阶楼梯上楼问题
- 九度oj 题目1205:N阶楼梯上楼问题
- 九度OJ 1205 N阶楼梯上楼问题 (DP)
- N阶楼梯上楼问题_1205
- 题目1205:N阶楼梯上楼问题(2008年华中科技大学计算机保研机试真题:递推求解)
- 九度OJ 1205 N阶楼梯上楼问题 -- 动态规划(递推求解)
- 九度OJ 1205:N阶楼梯上楼问题 (斐波那契数列)
- 九度OJ 1205:N阶楼梯上楼问题 (斐波那契数列)
- 题目1205:N阶楼梯上楼问题
- 九度OJ 1205 N阶楼梯上楼问题 (DP)