走楼梯 思路解答及C语言实现

该博客讲述了如何使用斐波那契数列解决楼梯的不同走法问题,博主分享了在比赛中未能解答,后来通过学习和理解斐波那契数列成功解决的经历,并提供了当时的C语言代码实现。
摘要由CSDN通过智能技术生成

Description

楼梯有 N 阶,上楼可以一步上一阶,也可以一步上二阶。

编一个程序,计算共有多少种不同的走法。

Input

一个数字,楼梯数。

Output

输出走的方式总数。

Sample Input 1 

4

Sample Output 1

5

比赛的时候做不出来,想得很复杂,回去之后用复杂度很高的算法模拟出来了,今天看了题解才知道是斐波那契数列……我数学敏感度太低了QAQ

#include<stdio.h>
int fib(int n);
int main(void){

    int n;
    scanf("%d",&n);
    printf("%d",fib(n+1));
    return 0;
}
int fib(int n)
{
    if(n==0)
        return 0;
    else if(n==1)
        return 1;
    else
        return fib(n-1)+fib(n-2);
}

之前学递归的时候写的斐波那契正好用上。

顺便扔一个当时赛后用垃圾算法写出来的代码。

当时想的组合数累加,写完还觉得自己怪聪明的,唉,代码之路还长着呢。

#include<stdio.h>
int fact(int n){
    int f=1;
    for(int i=1;i<=n;i++){
        f
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值