提问人:lklk 提问时间:2/1/2023 最后编辑:VicenteJankowskilklk 更新时间:2/1/2023 访问量:146
For循环返回错误结果
For-loop returning wrong results
问:
我在解决以下任务时得到了错误的结果:
广义谐波数。编写一个程序 GeneralizedHarmonic.java,它采用两个整数命令行参数 n 和 r,并使用 for 循环来计算 r 阶的第 n 个广义谐波数,该数由以下公式定义: 公式
public class GeneralizedHarmonic {
public static void main(String[] args) {
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int i;
double sum = 0;
for (i = 0; i <= a; i++) {
sum += 1 / Math.pow(i, b);
}
System.out.println(sum);
}
}
这是我的代码,但我无法获得正确的测试输出。输出结果始终为 。测试输出Infinity
答:
0赞
VicenteJankowski
2/1/2023
#1
你已经在for循环中启动了,所以你的谐波数的第一个元素不是,而是。int i = 0
for (i = 0; i <= a; i++)
有效的代码:
public class GeneralizedHarmonic {
public static void main(String[] args) {
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
double sum = 0;
for (int i = 1; i <= a; i++) {
sum += 1 / Math.pow(i, b);
}
System.out.println(sum);
}
}
评论
1.361111