在java中,偶数位置应该有斐波那契,奇数位置应该有素数 import java.util.Scanner; 公开课学期{ int k; 公共整数斐波那契(整数n){ int a=0,b=1,c; 如果(n==0){ 返回b; } 对于(int i=0;i
你的在java中,偶数位置应该有斐波那契,奇数位置应该有素数 import java.util.Scanner; 公开课学期{ int k; 公共整数斐波那契(整数n){ int a=0,b=1,c; 如果(n==0){ 返回b; } 对于(int i=0;i,java,Java,你的prime(int n)方法应该返回第n个素数。相反,如果n是素数,如果n不是素数,它将返回n,因为9不是素数 似乎在每次连续调用prime()时,您都希望获得下一个素数。因此,您可以更改prime()以返回大于n的下一个素数: import java.util.Scanner; public class Nthterm { int k; public int fibonacci(int n) { int a = 0, b = 1, c;
prime(int n)
方法应该返回第n个素数。相反,如果n
是素数,如果n
不是素数,它将返回n
,因为9
不是素数
似乎在每次连续调用prime()
时,您都希望获得下一个素数。因此,您可以更改prime()
以返回大于n
的下一个素数:
import java.util.Scanner;
public class Nthterm {
int k;
public int fibonacci(int n) {
int a = 0, b = 1, c;
if (n == 0) {
return b;
}
for (int i = 0; i <= n / 2; i++) {
c = a + b;
a = b;
b = c;
}
return b;
}
public int prime(int n) {
int result = 0;
boolean isprime = true;
for (int j = 2; j < n; j++) {
if (n % j == 0) {
isprime = false;
}
}
if (isprime) {
result = n;
}
return result;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("ENTER:");
int k = sc.nextInt();
Nthterm fib = new Nthterm();
int[] arr1 = new int[k + 1];
for (int n = 0; n <= k; n++) {
if (n % 2 == 0) {
arr1[n] = fib.fibonacci(n);
} else {
arr1[n] = fib.prime(n);
}
}
for (int element: arr1) {
System.out.println(element);
}
}
}
你应致电:
arr1[n]=fib.prime(n)
arr1[n]=n<2?fib.nextPrime(0):fib.nextPrime(arr1[n-2]);
arr1[n]=fib.prime(n)
arr1[n]= n < 2 ? fib.nextPrime(0) : fib.nextPrime(arr1[n-2]);