gpt4 book ai didi

java - 楼梯问题 - 了解基本逻辑

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:34:57 25 4
gpt4 key购买 nike

这是楼梯问题的递归版本(有N个楼梯,站在底部的人想到达顶部。这个人可以一次爬1个楼梯,2个楼梯或3个楼梯。数一数人达到顶峰的不同方式。)

public static int findStep(int n) 
{
if (n == 1 || n == 0)
return 1;
else if (n == 2)
return 2;

else
return findStep(n - 3) +
findStep(n - 2) +
findStep(n - 1);
}

我的问题是,为什么我们在 n=0 时返回 1 ??

对我来说,n=0 意味着没有更多的楼梯,所以它应该返回 0,但如果我这样做,那么程序不适用于其他非零输入。我在这个网站上看到了类似的问题,但没有一个能解释为什么我们在没有更多楼梯时返回 1。

最佳答案

这是一道选择题。将循环视为选择和排序零个或多个 1、零个或多个 2 以及零个或多个 3 的组合的方法数,这些组合加起来为 n。只有一种方法可以为 n = 0 进行这样的选择:选择无。

关于java - 楼梯问题 - 了解基本逻辑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58542844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com