在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]);