我們一直在做我的計算機科學課的實驗,這是作爲作業分配。我應該製作一個程序,查找從1到所輸入數字的所有畢達哥拉斯三元組。我相信我可以做到這一點,但我對另一項要求感到困惑。我必須檢查我輸入的整數是偶數/奇數,還要確保a,b和c的GCF是1.下面是我的指令以及我迄今爲止編寫的代碼。其次,如果a是奇數,那麼b必須是偶數,如果a是偶數,那麼b必須是奇數,並且對於a/b組合中的c必須是奇數
說明: 使用嵌套循環生成所有的畢達哥拉斯三元組,從1到提供的 數字。對於三個數字來說,它們必須滿足幾個要求。首先,三元組中的三個數字 必須滿足a2 + b2 == c2 。第二,如果a是奇數,那麼b必須是偶數,如果a是偶數,則b必須是奇數,並且對於a/b組合,c必須是奇數。最後,a,b和c的最大公因式必須是 不得大於1.
另外,在我找到三元組for循環的最後,我試圖找出a是偶數還是奇數但我不知道如何檢查a是否奇怪,然後是b以及GCF部分。如果我犯了錯誤,請糾正我,並告訴我如何完成我的編碼任務。提前致謝!
我的代碼:
package chapter4;
import java.util.*;
/**
*
* @author Anthony
*/
public class Triples {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Choose a limit for the pythsgorean triplets");
int limit = scan.nextInt();
int a, b, c;
for (a = 0; a < limit; a++) {
for (b = 0; b < limit; b++) {
for (c = 0; c < limit; c++){
if((Math.pow(a,2) + Math.pow(b, 2) == Math.pow(c, 2))) {
System.out.printf(" %d, %d, %d", a, b, c);
}
}
}
for (a = 0; a < limit; a++) {
if (a % 2)
printf("%d is odd\n", a);
else
printf("%d is even\n", a);
return 0;
}
}
你的老師基本上是告訴你不要用勾股定理,而不是把if塊,也有2%== 1爲真,如果是奇數的建議,假如果連 –