我一直有麻煩試圖找出如何解決一個功能。我已經被分配了一個小程序的開發,該程序告訴一個數字是否是「三角形」(當[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);
}
}
根據我做這些布爾測試,該功能是錯誤的。正如我看到的功能,它是這樣的:
- 我指出,在初始狀態下的輸入數量不是三角形 (三角=假)和i = N(確定區間[1,I]其中 功能將被評估
- 當n爲大於或等於0,號碼是不是三角形,將 循環開始
- 循環是這樣的:如果除所有號碼在 [1,i]區間爲n,數字爲三角形,導致循環結束,如果該語句爲假,我從i到(i-1),sta再次以該特定間隔循環 ,依此類推,直到 增加爲n。
我不能在我的「算法」中發現錯誤,有什麼建議嗎?
謝謝!
如果這是一個家庭作業,請相應地標記它。另外,你的問題是什麼? – Tudor
我添加了作業標籤,很抱歉! – jjcastil