求和的递归函数

时间:2014-03-14 13:48:12

标签: java recursion

我必须编写一个静态递归方法来解算算术求和并在每次调用时打印参数的值。基本上我必须将下限和上限之间的所有数字相加并打印出来" 0 + 1 = 1,1 + 2 = 3,3 + 3 = 6等。"然后是最后的总和。

我有它所以它准确地计算了最终的总和,但它总是打印几次。有人可以帮我修复方法的打印阶段吗? 这就是我到目前为止所拥有的:

public static int summationCalc(int lowerBound,  int upperBound)
{
    int sum = 0;


    if(lowerBound!= upperBound)
    {


        sum = upperBound + summationCalc(lowerBound, (upperBound-1));
        System.out.println(upperBound + " + " + summationCalc(lowerBound, (upperBound-1)) + " = " + sum);

        return sum;
    }

    else
        return upperBound;


}

感谢您的帮助!!

2 个答案:

答案 0 :(得分:2)

你两次调用递归函数。

 public static int summationCalc(int lowerBound, int upperBound)
        {
            int sum = 0;


            if (lowerBound != upperBound)
            {
                int k = summationCalc(lowerBound, (upperBound - 1));
                sum = upperBound + k;
                System.out.println(upperBound + " + " + k + " = " + sum);
                return sum;
            }
            else
                return upperBound;


        }

输出0到3:

1 + 0 = 1
2 + 1 = 3
3 + 3 = 6

答案 1 :(得分:0)

这里有一些问题。首先,你调用方法两次,因此你的总和将是错误的,因为sum变量将错过每个其他变量。

您应该考虑如何打印答案,首先打印,然后递归调用该方法。