You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

斐波那契数列问题:如何计算前100个偶数取值项的总和

斐波那契前100个偶数项求和代码修改方案

核心修改说明

  • 新增偶数项计数器,累计到100个偶数项时直接终止循环,替代原有数值小于400万的停止条件
  • 替换原有int类型为long,避免数值溢出:前100个偶数项总和为4850741640,超出int类型最大值(2147483647)

修改后完整代码

public class Improvement {
  // 入参修改为需要统计的偶数项数量,这里传100即可
  public static long Fibonacci(int targetEvenCount) {
      
      /**
       * 
       * Recursive took a long time so continued with iterative 
       * 
       * Complexity is n squared.. try to improve to just n
       * 
       */
            long tmp;
            long a = 2;
            long b = 1;
            long total = 0;
            // 偶数项计数器
            int evenCount = 0;

            do {
              if(isEven(a)) {
                  total +=a;
                  evenCount++;
                  // 达到目标数量直接终止循环
                  if(evenCount == targetEvenCount) {
                      break;
                  }
              }
              tmp = a + b;
              b = a;
              a = tmp;      
            } while (true);

            return total;

          }

          private static boolean isEven(long a) {
            return (a & 1) == 0;
          }

          public static void main(String[] args) {
            // 传入参数100,对应前100个偶数项
            System.out.println(Fibonacci(100));
          }
        }

运行结果

代码运行输出结果为4850741640,与已验证的前100个偶数项总和一致,对应运行结果截图如下:
mr1554代码运行结果

内容的提问来源于stack exchange,提问作者RedRum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 09:48:02