当前位置:编程学习 > C/C++ >>

天勤OJ 题目1156: N阶楼梯上楼问题

题目描述
N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归)
 
 
 
 
输入
输入包括一个整数N,(1<=N<90)。
 
 
 
 
输出
可能有多组测试数据,对于每组数据,
输出当楼梯阶数是N时的上楼方式个数。
 
 
 
 
样例输入
 
样例输出
13 
 
提示 [+]
*** 提示已隐藏,点击上方 [+] 可显示 ***
 
 
 
来源
2008年华中科技大学计算机研究生保研机试真题
 
 
 
 
 
 
 
[cpp] 
/********************************* 
*   日期:2013-2-21 
*   作者:SJF0115 
*   题号: 天勤OJ 题目1156: N阶楼梯上楼问题 
*   来源:http://acmclub.com/problem.php?id=1156 
*   结果:AC 
*   来源:2008年华中科技大学计算机研究生保研机试真题 
*   总结:超出int范围 
**********************************/  
#include<stdio.h>   
#include<stdlib.h>   
#include<string.h>   
  
long long int array[91];  
  
int Step(){  
    array[0] = 0;  
    array[1] = 1;  
    array[2] = 2;  
    for(int i = 3;i < 91;i++){  
        array[i] = array[i-1] + array[i-2];  
    }  
    return 0;  
}  
int main()  
{  
    int n;  
    Step();  
    while(scanf("%d",&n) != EOF){  
        printf("%lld\n",array[n]);  
    }  
    return 0;  
}  
 
/*********************************
*   日期:2013-2-21
*   作者:SJF0115
*   题号: 天勤OJ 题目1156: N阶楼梯上楼问题
*   来源:http://acmclub.com/problem.php?id=1156
*   结果:AC
*   来源:2008年华中科技大学计算机研究生保研机试真题
*   总结:超出int范围
**********************************/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
 
long long int array[91];
 
int Step(){
array[0] = 0;
array[1] = 1;
array[2] = 2;
for(int i = 3;i < 91;i++){
array[i] = array[i-1] + array[i-2];
}
return 0;
}
int main()
{
int n;
Step();
while(scanf("%d",&n) != EOF){
printf("%lld\n",array[n]);
}
return 0;
}
 
 
补充:软件开发 , C++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,