Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中使用递归计算(2n-1)的和_Java_Recursion - Fatal编程技术网

在Java中使用递归计算(2n-1)的和

在Java中使用递归计算(2n-1)的和,java,recursion,Java,Recursion,我需要迭代和递归地计算这个总和,我已经做了迭代方法,它工作得很好。但是我不知道如何进行递归 总和是这样的:1+3+5+9+…+2n−一, 这是一个迭代过程: public int dIt(int n) { int sum = 0; for (int i = 1; i <= n; i = 2 * i - 1) { if (i <= 1) { sum += i; i = 2; } el

我需要迭代和递归地计算这个总和,我已经做了迭代方法,它工作得很好。但是我不知道如何进行递归

总和是这样的:1+3+5+9+…+2n−一,

这是一个迭代过程:

    public int dIt(int n) {
    int sum = 0;
    for (int i = 1; i <= n; i = 2 * i - 1) {
        if (i <= 1) {
            sum += i;
            i = 2;
        } else {
            sum += i;
        }
    }
    return sum;
}
public int dIt(int n){
整数和=0;
对于(int i=1;i您需要定义:

1) 案例库:

  if(n==1) return 1
2) 步骤:


对不起,这是你的家庭作业;那么除了“这是你通常做递归的方式”(这是你自己可以轻松研究的事情)之外,你希望我们告诉你什么呢?学习的部分是思考……我到底是怎么做的?当你走“轻松的弯路”时避免这一部分…还有什么需要你学习的呢?1.纯代码答案不好2.OP明确表示他不想要完整的代码,而不是答案!然而,当使用迭代和递归方法时,我得到的结果不同。例如,如果我对n=20运行它,迭代方法返回35,而递归方法返回35rns 400。我认为正确的方法是迭代法,因为求和将是:1+3+5+9+17=35。你认为问题出在哪里?再次感谢你。我认为你的迭代法是错误的。对于n=20,结果将是:39+37+35+33+31+…+1=400在迭代法中,你的For可能是:For(inti=0;iHi,很抱歉花了这么长时间回复,我一直在忙学校的事。通过迭代,求和将是1+3+5+9+17=35。这不是奇数的和,而是(2n-1).我想你发布的递归是对奇数求和。或者我没有正确理解这个练习。再次感谢你的帮助!
  if(n==1) return 1
  else return (doIt(n-1)) + (2*n-1)