gpt4 book ai didi

java - 与评估数字是否为三角形的 while 语句混淆

转载 作者:行者123 更新时间:2023-12-01 17:34:08 25 4
gpt4 key购买 nike

我在尝试找出如何求解函数时遇到了麻烦。我被分配开发一个小程序,该程序告诉我一个数字是否是“三角形”(当 [1,n] 区间中某些连续数字的相加为 n 时,该数字是三角形的。根据定义,数字 10是三角形,因为在[1,10]区间内,1+2+3+4=10)。

到目前为止我已经编码了:

class TriangularNumber{

boolean numTriangular(int n) {
boolean triangular = false;
int i = n;
while(n>=0 && triangular){
//UE06 is a class which contains the function "f0", which makes the addition of all the numbers in a determined interval
UE06 p = new UE06();
if ((p.f0(1, i))==n)
triangular = true;
else
i=i-1;
}
return triangular;
}

boolean testTriangular = numTriangular(10) == true &&
numTriangular(7) == false &&
numTriangular(6) == true;

public static void main(String[] args){

TriangularNumber p = new TriangularNumber();
System.out.println("testTriangular = " + p.testTriangular);
}
}

根据我所做的 boolean 测试,该函数是错误的。当我看到这个函数时,它是这样的:

  1. 我声明初始状态下的输入数不是三角形(triangle=false) 和 i=n (确定区间 [1,i],其中函数将被评估
  2. 当 n 大于或等于 0 并且该数不是三角形时,循环开始
  3. 循环是这样的:如果将数组中的所有数字相加[1,i] 间隔为 n,数字为三角形,导致循环结尾。如果该陈述为假,则 i 从 i 到 (i-1),开始以该特定间隔再次循环,依此类推,直到加法是n。

我无法发现我的“算法”中的错误,有什么建议吗?

谢谢!

最佳答案

while(n>=0 && triangular){triangle = false 因此,您永远不会执行该函数。

另一个问题是,如果你进入循环,并且数字不是三角形,你永远不会和它,因为你测试 n,但减少 i。

再试一次? ;)(这看起来像是一项作业,所以,我不会为您编写该函数,只是帮助您并指出代码中的一些问题)

关于java - 与评估数字是否为三角形的 while 语句混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8125678/

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