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

发布于 2025-01-10 05:18:12 字数 467 浏览 0 评论 0原文

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

输入: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);

function that takes a number as input if the given number is a Fibonacci number, prints the number otherwise, print the sum of all even Fibonacci numbers less than the given number.

Input: 20
Output: 10

Input: 21
Output: 21

I tried doing this :

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

╰沐子 2025-01-17 05:18:12

由于设置了 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);
    }
}

You want to start at index since arr[0], arr[1] are set. Also when sum you dont want to sum last element if its bigger than 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);
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文