- 题目描述:
-
N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归)
- 输入:
-
输入包括一个整数N,(1<=N<90)。
- 输出:
-
可能有多组测试数据,对于每组数据,
输出当楼梯阶数是N时的上楼方式个数。
- 样例输入:
-
4
- 样例输出:
-
5
思路:
仔细分析一下就知道是斐波那契数列。
要求不用递归,我没有用函数递归,用的是数组。
代码:
#include <stdio.h> int main() { long long a[91]; a[1] = 1; a[2] = 2; int i, n; for(i=3; i<=91; i++) a[i] = a[i-1]+a[i-2]; while(scanf("%d", &n) != EOF) { printf("%lld ", a[n]); } return 0; } /************************************************************** Problem: 1205 User: liangrx06 Language: C Result: Accepted Time:0 ms Memory:912 kb ****************************************************************/