下面的函数接受一个整数n并返回前n个倒数的总和.sum(2)应该返回1.5
这是我有的:
public double sum(int n) {
if (n < 0) {
throw new IllegalArgumentException("Illegal Power Argument");
}
double zero = 0.0;
if(n == 0)
return zero;
else
return (1/n) + sum(n-1);
}
Run Code Online (Sandbox Code Playgroud)
我几乎可以肯定这应该可以工作,但基本上所有东西都返回1.0.
您正在使用整数除法.把它变成双重:
return (1/(double)n) + sum(n-1);
Run Code Online (Sandbox Code Playgroud)
或者,使用:
return (1.0/n) + sum(n-1);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3100 次 |
| 最近记录: |