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

循环返回错误结果:广义调和数计算程序输出始终为Infinity

解决广义调和数计算输出Infinity的问题

你的代码出现Infinity的核心原因是循环起始值错误:

  • 广义调和数的求和项是从i=1到i=n,但你的循环从i=0开始。当i=0时,Math.pow(0, b)结果为0,执行1 / 0会直接得到Infinity,这个值会污染整个求和结果。

修正后的代码如下:

public class GeneralizedHarmonic {

    public static void main(String[] args) {

        int n = Integer.parseInt(args[0]);
        int r = Integer.parseInt(args[1]);
        double sum = 0;
        // 从i=1开始循环到i=n
        for (int i = 1; i <= n; i++) {
            sum += 1 / Math.pow(i, r);
        }
        System.out.println(sum);
    }
}

额外说明:我把变量名改成了n和r,对应题目里的参数含义,这样代码可读性更强。现在测试时输入合法的正整数n和r,就能得到正确的广义调和数结果了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 04:26:55