当前位置 : 主页 > 编程语言 > 其它开发 >

算法题-爬楼梯

来源:互联网 收集:自由互联 发布时间:2022-05-30
题目描述 ​小海是一个顽皮的少年,对于爬楼梯这种事情,他从来都不愿意一步一步走,每次上楼梯的时候,要么往上跨两级,要么往上跨三级。 对于有 n 级台阶的楼梯,小海想知道
题目描述

​小海是一个顽皮的少年,对于爬楼梯这种事情,他从来都不愿意一步一步走,每次上楼梯的时候,要么往上跨两级,要么往上跨三级。
对于有 n 级台阶的楼梯,小海想知道他从最下面走到最上面的方法总数。


解析

此题的切入点是,从上往下分析。找规律的方式,找到step7需要几步搞定,有点多叉树的思想。

  • 要到达Step7,可以从Step5+2 或者是Step4+3 到达。以此类推,如下图:
使用C语言实现如下
#include <stdio.h>
int main()
{
    int n;
    scanf("%d", &n);
    int arr[n + 1];
    arr[1] = 0;
    arr[2] = 1;
    arr[3] = 1;

    for (int i = 4; i <= n; i++)
    {
        arr[i] = arr[i - 2] + arr[i - 3];
    }
    printf("The number of steps required is %d", arr[n]);
    return 0;
}
使用Python语言实现如下
def get_steps_number(num: int) -> int:

    counts: list = [0, 0, 1, 1]

    for item in range(4, num+1):
        counts.append(counts[item-2] + counts[item-3])

    print("The number of steps required is %d" % counts[num])


num = int(input("input step "))
get_steps_number(num)

上一篇:openstack调整云主机实例类型大小
下一篇:没有了
网友评论