C语言作业,用for循环 从一楼到二楼有20个台阶,人一次只能走一个或两个台阶,从一楼到二楼有多少种走法

问题描述:

C语言作业,用for循环 从一楼到二楼有20个台阶,人一次只能走一个或两个台阶,从一楼到二楼有多少种走法
1个回答 分类:综合 2014-12-12

问题解答:

我来补答
简单分析下:走到第i阶的方法有两种,从第i-2直接走2阶和从第i-1阶走1阶,所以f(i)=f(i-2)+f(i)
因此该问题可以抽象为斐波那契数列,这样求解就简单多了.
定义一下初始条件,到第一阶的方法f(1)=1; 到第二阶的方法有f(2) = 1 + f(1)=2
所以代码如下:
#include<stdio.h>
int main()
{
 int n=20;
 int i, l, b, r;
 for(i=3, l=1, b=2; i<21; i++)
 {
  r = l + b;
  l=b;
  b=r;
 }
 printf("%d\n", r);
 return 0;
}
 
 
展开全文阅读
剩余:2000
上一页:
下一页:判断题。