【发布时间】:2016-12-01 03:30:31
【问题描述】:
我们一直在我的计算机科学课上做实验,这是作为家庭作业分配的。我应该制作一个程序来查找从 1 到输入数字的所有毕达哥拉斯三元组。我相信我可以做到这一点,但我对另一个要求感到困惑。我必须检查我输入的整数是否是偶数/奇数,还要确保 a、b 和 c 的 GCF 为 1。下面是我的说明以及我目前编写的代码。
说明: 使用嵌套循环生成从 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 块,a % 2 == 1 如果 a 是奇数则为真,如果是偶数则为假
标签: java nested-loops pythagorean