N阶楼梯上楼问题

2013-07-23 09:06:06 · 作者: · 浏览: 147

  题目描述

  N阶楼梯上楼问题:一次可以走两阶或一阶,问有多少种上楼方式。(要求采用非递归)

  输入

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

  输出

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

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

  样例输入

  6

  样例输出

  13

  提示 [+]

  *** 提示已隐藏,点击上方 [+] 可显示 ***

  来源

  2008年华中科技大学计算机研究生保研机试真题

  [cpp]

  /*********************************

  * 日期:2013-2-21

  * 作者:SJF0115

  * 题号: N阶楼梯上楼问题

  * 结果:AC

  * 总结:超出int范围

  **********************************/

  #include

  #include

  #include

  long long int array[91];

  int Step(){

  array[0] = 0;

  array = 1;

  array = 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阶楼梯上楼问题

  * 结果:AC

  * 总结:超出int范围

  **********************************/

  #include

  #include

  #include

  long long int array[91];

  int Step(){

  array[0] = 0;

  array = 1;

  array = 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;

  }