初学Java,求大神指点,用递归函数计算1⼀2+1⼀3+1⼀4+...1⼀n,写的程序结果总是0.5

2024-12-04 17:47:46
推荐回答(4个)
回答1:

return 1/n + f(n-1);这里错了java中/当两边都是int是它代表取整运算

2种改法:1)int n = console.nextInt();定义n是用double来定义

2)return 1/n + f(n-1);这里讲结果强转为double

回答2:

将return 1/n + f(n-1);

改成return 1.0/n+f(n-1);
就可以了,我已经在本机试过了

回答3:

- -你return的0.5返回姐过不就是0.5么。。

回答4:

public static double f(int n){
double sum_num=0;
for(int i=2;i<=n;i++){
sum_num=sum_num+1/i;}
return sum_num;
}