递归找到分数之和

问题描述 投票:0回答:1

我想写一个递归来求小数之和:例如:输入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;
    }
} 

}

java
1个回答
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)
}
© www.soinside.com 2019 - 2024. All rights reserved.