题目1205:N阶楼梯上楼问题
时间限制:1 秒
内存限制:128 兆
特殊判题:否
提交:2120
解决:772
-
题目描述:
-
N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归)
-
输入:
-
输入包括一个整数N,(1<=N<90)。
-
输出:
-
可能有多组测试数据,对于每组数据,
输出当楼梯阶数是N时的上楼方式个数。
-
样例输入:
-
4
-
样例输出:
-
5
#include<stdio.h> #include<memory.h> int main(void) { int N; long long dp[90]; int i; while(scanf("%d",&N)!=EOF) { memset(dp,0,sizeof(dp)); dp[1]=1; dp[2]=2; for(i=3;i<=N;i++) { dp[i]=dp[i-1]+dp[i-2];//只能从i-1迈上一步 或者从i-2迈上一步 从i-2分两次就是从i-1 } printf("%lld\n",dp[N]); } return 0; } /************************************************************** Problem: 1205 User: ranchothu Language: C++ Result: Accepted Time:0 ms Memory:1020 kb ****************************************************************/