HUST程序设计竞赛(新生赛)-同步赛-Q-小乐乐走台阶

小乐乐走台阶

https://ac.nowcoder.com/acm/contest/1877/Q

题目描述
小乐乐上课需要走n阶台阶,因为他腿比较长,所以每次可以选择走一阶或者走两阶,那么他一共有多少种走法?
输入描述:
输入包含一个整数n (1 ≤ n ≤ 30)
输出描述:
输出一个整数,即小乐乐可以走的方法数。

因为走到第三个楼梯的时候可以从第一阶和第二阶直接走上来

同理,第四个楼梯的时候可以从第二阶和第三阶直接走上来

第五个楼梯的时候可以从第三阶和第四阶直接走上来
… …

所以可以得出公式

a[i]=a[i-1]+a[i-2]

特判a[0][1]=0a[1[1]=1,a[2][1]=1

可以得出结论这是一个斐波那契数列

因为数据比较水(1 ≤ n ≤ 30)

所以可以打表A题

下面是打表代码

#include <iostream>

using namespace std;

int fib(int n)
{
    if (n == 0)
        return 0;
    else if (n == 1)
        return 1;
    else
        return fib(n - 1) + fib(n - 2);
}

int main()
{
    int i;
    cout << "a[31] = {0";
    for (i = 1; i <= 30; i++)
        cout  << ", "<< fib(i);
    cout << "};";
    return 0;
}

下面是使用打表数据的代码

# include <iostream>
using namespace std;
int main()
{
    int a[31] = {1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368,75025,121393,196418,317811,514229,832040,1346269};
    int n;
    cin >> n;
    cout << a[n];
    return 0;
}  
全部评论
太草了
点赞 回复 分享
发布于 2022-09-03 15:20 江西
直接打表数据
点赞 回复 分享
发布于 2022-09-03 15:21 江西

相关推荐

10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
11-09 11:01
济南大学 Java
Java抽象带篮子:外卖项目真得美化一下,可以看看我的详细的外卖话术帖子
点赞 评论 收藏
分享
评论
6
收藏
分享
牛客网
牛客企业服务