我想编写一个递归方法,希望将整数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);
}
}
答案 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));
}