12 학년 컴퓨터 과학 수업 과제입니다. 다음과 같이프라임 피처 번호 옆에 텍스트 알림을 인쇄하는 방법은 무엇입니까?
내가 함께 어려움을 겪고 할당의 섹션을 읽
소수있는 처음 20 피보나치 수의 결정합니다.
기본 질문에서 "this is a prime"텍스트 알림을 인쇄물에 넣으십시오.
FibPrimes는 FibPrimes라는 배열에 저장합니다. 여기
, 내가 텍스트 통지를 인쇄 할 루프를 만들기 위해 시도 "이다 프라임"주어진 FibNum 요소는 FibPrime 동일한 있다면 요소. 이것은 작동하지 않았다. 문제 블록은 주석으로 식별됩니다. 나머지 프로그램은 괜찮습니다. 제거 문제 블록
package fibonaccinumbers;
public class FibonacciNumbers {
public static void main(String[] args) {
// Creation of Fibonacci Numbers Array.
int [] FibNums = new int[20];
FibNums[0] = 0;
FibNums[1] = 1;
// Creation if Fibonacci Primes Array.
int [] FibPrimes = new int[7];
FibPrimes[0] = 2;
FibPrimes[1] = 3;
FibPrimes[2] = 5;
FibPrimes[3] = 13;
FibPrimes[4] = 89;
FibPrimes[5] = 233;
FibPrimes[6] = 1597;
// Printing first two fibonacci numbers.
System.out.println(0);
System.out.println(1 + "*");
// Printing remaining fibonacci numbers up to 20th term.
for (int i=2; i<FibNums.length;i++){ // Begin number generation loop.
FibNums[i] = FibNums[i-1] + FibNums[i-2];
// Checks if the fibonacci number is odd.
// A number is not odd if two divides into it evenly.
boolean oddcheck = true;
if (FibNums[i]%2==0){
oddcheck = false;
}
// Prints odd fibonacci numbers with a star beside it.
// Prints even fibonacci numbers with no star beside it.
if (oddcheck == true){
System.out.println(FibNums[i] + "*");
} else {
System.out.println(FibNums[i]);
}
// PROBLEM BLOCK HERE. ************************
// If any element in the FibPrimes array is equal to the FibNums
// array, then the number is a prime.
for (int n=0; n<=FibPrimes.length; n++){
if (FibNums[i] == FibPrimes[n]){
System.out.print(" " + "This is a prime.");
}
}
} // End number generation loop.
}
}
출력 :
0
1*
1*
2
3*
5*
8
13*
21*
34
55*
89*
144
233*
377*
610
987*
1597*
2584
4181*
이 (별은 홀수 번호를 식별 - 할당의 다른 섹션)와
출력 문제 블록 나머지 :
0
1*
1*
나머지 숫자는 인쇄되지 않으며 문자 알림도 없음을 유의하십시오. .
내가 현재 가지고있는 것보다 더 나은 방법으로 문제를 해결할 수는 있지만 앞으로도 계속 수정할 것입니다. 더 자세한 정보가 필요하면 알려주세요. 고맙습니다.
감사합니다. @AJNeufeld 및 @YayPawSi. 솔루션을 사용하여 프로그램을 인쇄 할 수있었습니다. 개정 출력 :
0
1*
1*
This is a prime. 2
This is a prime. 3*
This is a prime. 5*
8
This is a prime. 13*
21*
34
55*
This is a prime. 89*
144
This is a prime. 233*
377*
610
987*
This is a prime. 1597*
2584
4181*
에 오신 것을 환영합니다! 짐작하면, for (int n = 0; n <= FibPrimes.length; n ++) 루핑으로 인해 프로그램이 아마도 'ArrayIndexOutOfBoundsException'으로 충돌하고 있다고 말할 수 있습니다. 마지막 반복은 배열의 끝을 넘어 색인을 생성합니다. – AJNeufeld
나는 당신의 임무가 당신이 예비 한 fibonacii 번호를 사전에 연구하고 배열을 저장하는 것을 기대하지 않는다고 확신합니다. 나는 fibonacii 번호가 소수인지 여부를 계산하고 FibPrimes에 저장해야한다고 확신합니다. –
@StephenC이 댓글을 주셔서 감사합니다. 당신은 틀림없이 정확하다고 생각합니다. 임무에 어려움이 있었기 때문에, 나의 최우선 과제는 "기능"을 창출하는 것이 었습니다. 이것은 내 다음 목표가 될 것입니다. –