c语言简单算法——爬楼梯问题

文章讲述了如何将爬楼梯问题转化为斐波那契数列问题,利用递归的方法解决,展示了从倒数第二次爬楼梯的角度出发,通过编程实现的简单示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实现思路:反向思维,设要爬n阶楼梯,倒数第二次爬楼梯则有为n-1阶或n-2阶,则可列为f(n)=f(n-1)+f(n-2),爬1阶有1种方法,爬2阶有2种方法,那这样就成了一个斐波那契数列的问题

简单方法:我们看成一个移动问题1 2 3 5 8 13.。。。1 2 3 —>2 3 5,以此类推

void dstair(int x)
{
    int p = 0, q = 0, r = 1;
    int i;
    for (i = 0; i < x; i++)
    {
        p = q;
        q = r;
        r = p + q;
    }
    printf("%d", r);
}
int main()
{
    int n;
    scanf("%d", &n);
    dstair(n);
    return 0;
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值