如果给定的 num 是 Fibonacci num,则函数将 num 作为输入,打印 num,否则打印小于给定 num 的所有偶数 Fib num 的总和

function that takes a num as input if the given num is a Fibonacci num, prints the num,else print sum of all even Fib num less than the given num

如果给定数字是斐波那契数,则函数将数字作为输入,否则打印该数字,打印小于给定数字的所有偶数斐波那契数之和。

输入:20 输出:10

输入:21 输出:21

我试过这样做:

 int n=22;
    int arr[]=new int[n];
    arr[0]=0;
    arr[1]=1;
    int sum=0,i=0;
    while(arr[i]<=n){
        arr[i]=  (arr[i-1] + arr[i-2]);
        if(arr[i]==n) System.out.println(n);
        i++;
        }
     for(i=0;i<arr.length;i++){
         if(arr[i]%2==0) sum+=arr[i];
     }
     System.out.println(sum);

你想从索引开始,因为 arr[0]、arr[1] 已设置。另外,如果求和你不想对大于 n 的最后一个元素求和。

public class Main
{
    public static void main(String[] args) {
    int n=9;
    int arr[]=new int[n];
    arr[0]=0;
    arr[1]=1;
    int sum=0,i=1;
    
    while(arr[i]<n){
        i++;
        arr[i]= (arr[i-1] + arr[i-2]);
        if(arr[i]==n){ 
            System.out.println(n);
            return;
        }
    }
    
    for(i=0;i<arr.length;i++){
         if(arr[i]%2==0  && arr[i]< n) sum+=arr[i];
    }
     System.out.println( sum);
    }
}