递归方法,总结奇数

时间:2018-05-16 15:38:43

标签: java recursion

我想编写一个递归方法,希望将整数N作为输入,然后添加并返回从1到N的所有奇数,但是如何给出总和呢?我的解决方案是对的吗?

   public class Main {

    public static void main(String[] args) {
        sum(10);

    }

    static int sum(int n)
    {
        if(n % 2 == 0) {
            n--;
        }
        if (n <= 1)
        {
            return 0;
        }
        return n + sum(n-2); 

    }
}

2 个答案:

答案 0 :(得分:1)

要知道您的解决方案是否正确,您需要运行它并打印结果。 要进行打印,请使用System.out.println(..)

public static void main(String[] args) {

    int s = sum(10);
    System.out.println(s);
}

static int sum(int n)
{
    if(n % 2 == 0) {
        n--;
    }
    if (n <= 1)
    {
        return 0;
    }
    return n + sum(n-2); 
}

执行它并查看结果以查看它是否给出正确的输出。

答案 1 :(得分:0)

类似逻辑的另一种变体:

private static int sum(int i) {
    i = ((i%2) == 0) ? --i : i;
    return (i < 2) ? i : (i+ sum(--i));
}