如何用递归的方式解决这个求和问题

Dra*_*aco 0 java recursion

今天,我的老师要求我们在 Java 中使用递归实现下一个表达式(其中n是向用户询问的值):

待实施汇总

有可能的?我找不到这个问题的正确解决方案,但我想我需要两种递归方法。

更新

到目前为止我已经这样做了:

public static double sumatorio(int n){
    if(n==1)
        return 1;
    else{
        return (1 + ((n-1) * segundoSumatorio(n))) + sumatorio(n-1);            
    }
}

public static double segundoSumatorio(int n){
    if(n==1)
        return 1;
    else
        return 1/(double)n + segundoSumatorio(n-1);
}
Run Code Online (Sandbox Code Playgroud)

看起来是正确的,但是当n=3或更大时,结果不准确。有人知道为什么吗?

也许存在与失去精度相关的错误。

痕迹

我非常感谢您提供的任何帮助。

Ste*_*n C 5

提示:

  1. 是的。一种可能的解决方案涉及两种递归方法。

    (这是一个很好的解决方案......)

  2. 将问题(和解决方案)分解为两部分;例如完整的“sigma”和嵌入的“sigma”。