走梯子问题

题目描述
现在小瓜想通过台阶走上平台,最底层(小瓜所在的层)编号为1,最顶层编号为n。由于小瓜的腿比较短,他一次只能向上走1级或者2级台阶。小瓜想知道他有多少种方法走上平台,你能帮帮他吗?

输入格式
一个整数n,其中2≤n≤25。

输出格式
一行一个整数,表示小瓜上台阶的方案数

样例
输入样例

4
输出样例

3
数据范围与提示
对于100%的数据,2≤n≤25;

#include <stdio.h>
int main()
{
	int n,a=1,b=1,c;
    scanf("%d",&n);
    for(int i=2;i<n;i++)
    {
    	c=a;
    	a=a+b;
    	b=c;
	}
	printf("%d",a);
    return 0;
}

在这个问题中,由题目可得,我们现在想象自己已经站在第n级台阶上了,那么我们上一个位置只能在第n-1或者n-2级台阶上。比如我们在第3级台阶上,我们上一个位置就在第1或者第2级台阶上。也就是说我们到达第3级台阶有两种情况,分别计算着两种情况并相加即可,即到达第1级台阶的方式数加上到达第2级台阶的方式数,结果等于3。同理到达第n级台阶的放法数就等于到达第n-1级台阶与到达第n-2级台阶数之和,i代表阶梯的层数,a代表在i代表的阶梯数下的方法数,c则代表上一次阶梯数的方法数,b则是一个传递参数,循环从第二级阶梯开始,从此往下的每一次循环,则代表一级阶梯数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值