Java 利用递归计算级数

Java 利用递归计算级数,java,recursion,Java,Recursion,我一定是没能理解在递归方法中存储值的概念。使用迭代解决这个问题需要几秒钟的时间,但我正在努力处理递归调用。基本上我是在试图解决:1/1+1/2+1/3 public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.print("Enter in the end number for the sequence: "); int endpoi

我一定是没能理解在递归方法中存储值的概念。使用迭代解决这个问题需要几秒钟的时间,但我正在努力处理递归调用。基本上我是在试图解决:1/1+1/2+1/3

 public static void main(String[] args) {

    Scanner input = new Scanner(System.in);    

    System.out.print("Enter in the end number for the sequence: ");
    int endpoint = input.nextInt();

    System.out.println("The value of the sequence is : " + calcSequence(endpoint));

    }

    public static double calcSequence (int index){

        if (index == 0)
            return 0;
        else
            return (1/index) + calcSequence(index - 1);
    }

您需要添加一些显式类型转换。您的
1/索引
正在作为整数除法执行,并且您的调用正在丢失其所有精度。只需将其更改为
1.0/index
(或
1d/index
,以指示
1
应用作
double
)即可满足您的需要。

您需要添加一些显式类型转换。您的
1/索引
正在作为整数除法执行,并且您的调用正在丢失其所有精度。只需将其更改为
1.0/index
(或
1d/index
,以指示
1
应用作
double
)即可满足您的需要。

我知道这是件愚蠢的事情。我拿出笔和纸,它看起来合乎逻辑。我知道这是件愚蠢的事。我拿出笔和纸,似乎合乎逻辑。