우리는 컴퓨터 과학 수업에서 실험실 작업을 해왔습니다. 숙제로 배정 받았다. 피타고라스의 모든 트리플을 1에서 입력 된 숫자로 찾는 프로그램을 만들어야합니다. 나는 그 부분을 할 수 있다고 믿지만 또 다른 요구 사항에 혼란 스럽다. 입력 한 정수가 짝수/홀수인지 확인하고 a, b 및 c의 GCF가 1인지 확인해야합니다. 여기에 지금까지 작성한 코드와 함께 아래 지침이 있습니다.두 번째, a가 홀수이면 b는 짝수 여야하고 a가 짝수이면 b는 홀수 여야하고 c는 a/b 조합에 대해 홀수 여야합니다.
지침 : 피타고라스 식 트리플을 모두 1에서 최대 제공된 까지 생성하려면 중첩 루프를 사용하십시오. 3 개의 숫자가 트리플이 되려면 몇 가지 요구 사항을 충족시켜야합니다. 첫째, 세 개의 숫자 은 a2 + b2 == c2 을 만족해야합니다. 둘째, a가 홀수이면 b는 짝수 여야하고 a가 짝수이면 b는 홀수이어야하고 a/b 조합에 대해서는 c가 홀수 여야합니다. 마지막으로 a, b 및 c의 가장 큰 공통 요소는 이어야하며 1보다 크지 않아야합니다.
또한 for 루프가 끝날 때 세 쌍을 찾으려면 짝수 또는 홀수인지 찾아야했습니다. 하지만 이상한지를 확인하는 방법을 모른다면 GCF 부분뿐 아니라 b 부분도 있습니다. 실수로 코딩 작업을 완료하는 방법에 대해 조언을 해 주시면 문제를 해결해주십시오. 미리 감사드립니다!
내 코드 :
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;
}
}
대신하는 경우도 거짓, a가 홀수 인 경우 블록, 또한 % 2 == 1에 해당하는 경우 제안 넣어 –