gpt4 book ai didi

JAVA:使用递归从头到尾加法

转载 作者:行者123 更新时间:2023-11-29 06:29:09 25 4
gpt4 key购买 nike

我需要有关此递归方法的帮助。我需要它来添加从起点到终点的整数。

    public static int sumInts(int begin, int end){
if (begin == end)
return begin + end;
else
return sumInts(begin+1,end);
}

示例输出应该是:
开始:1
结束:4
总和是:10

但我得到 8 作为那些特定输入的输出。我知道这是破坏它的条件,但我似乎无法弄清楚..

最佳答案

But I'm getting 8 as my output for those particular input.

这很正常。除了最后一次,它每次都会转到 else block ,因为 beginend 都是 4 并且它将返回 4 + 4 = 8

你应该这样做:

public static int sumInts(int begin, int end){
if (begin == end)
return end; // return the last number
else
return begin + sumInts(begin+1,end); // sum the current number with the recursion result
}

这当然可以通过其他方式完成 - 通过减少 end 而不是增加 begin

public static int sumInts(int begin, int end){
if (begin == end)
return begin;
else
return end + sumInts(begin,end-1);
}

关于JAVA:使用递归从头到尾加法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42585525/

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