gpt4 book ai didi

java - 计算一个数字与自身相加多少次直到达到任意值?

转载 作者:行者123 更新时间:2023-12-01 19:46:47 26 4
gpt4 key购买 nike

考虑两个变量:

“n”是任意值。

“i”是某个值在达到“n”值之前在总和中增加的次数。

例如,如果选择值 n = 344,则 i = 26,因为:

26 + 25 + 24 + ... + 3 + 2 + 1 = 351

26 是变量“i”在等于 n = 344 或第一次超过之前按降序添加的次数。

public class Trstuff{
public static void main (String [] arg) {
int n = 4;
int i = computeIndex(n);
System.out.print(i);
}
public static int computeIndex(int n) {
int i = 1;
int sum = 0;
for(i = 1; sum <= n; i++) {
sum = sum + i;
}
return i;
}
}

我的目标是选择任意“n”值,然后让程序将变量“i”返回给我。

就我的程序而言,我认为它应该是正确的,但不知何故它不是。这是 n = 4 的示例。

结果应该是“i = 3”,因为:

1 + 2 = 3

1 + 2 + 3 = 6

因此,由于循环中的表达式“sum <= n”,循环中“i”的升序值在循环应该停止之前被添加了 3 次。

但是,当我运行该程序时,它返回值 4。我根本不明白出了什么问题,为什么我的程序给了我 4 而不是正确答案 3?

最佳答案

读取for循环如下:

for every value of i while sum smaller or equal to n, add i to sum and increment i

和增量i的最后部分在sum + i之和之后执行,但在检查sum是否小于或等于的下一个检查之前执行n,结果 i 总是比预期大 1。

解决方案可能是使用不同的导出(存在不同的解决方案):

public static int computeIndex(int n) {
int i = 1;
int sum = 0;
while true {
sum = sum + i;
if sum<n {
i++;
} else break;
}
return i;
}

关于java - 计算一个数字与自身相加多少次直到达到任意值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52960564/

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