我想写一个递归来求小数之和:例如:输入3输出:1/1 + 1/2 + 1/3等于1.83333333 ....这就是我现在所拥有的:
import java.util.Scanner;
public class fsd{
public static void main(String[] args) {
Scanner k = new Scanner(System.in);
double a = 0;
int n = k.nextInt();
for (int i = 1; i <= n; i++) {
a = getSum(i);
System.out.println(a);
}
}
public static double getSum(int i) {
if (i > 1) {
double curStep = 1 / (i + 1.0);
return curStep + getSum(i - 1);
} else if (i == 1) {
return 1;
} else {
return 0;
}
}
}
这是我的解决方案,它有效.....
import java.util.Scanner;
public class fsd {
public static void main(String[] args) {
Scanner k = new Scanner(System.in);
double a = 0;
int n = k.nextInt();
for (int i = 1; i <= n; i++) {
a = getSum(i);
System.out.println(a);
}
}
public static double getSum(int i) {
if (i > 1) {
double curStep = 1.0 / (i);
return curStep + getSum(i - 1);
} else if(i == 1) {
return 1;
} else {
return 0;
}
}
//1+(1+1/3) + (1+1/3+1/4)
}