【发布时间】:2009-08-15 23:45:23
【问题描述】:
我正在尝试编写一种方法来计算小于给定数字的所有数字中奇数的总和。所以例如。 CalcOdd(7) 将返回 5 + 3 + 1 = 9。CalcOdd (10) 将返回 9 + 7 + 5 + 3 + 1 = 25 等等
该方法需要输入一个数字,减去 1,然后递归地反向添加所有奇数,直到它达到 0。这就是我目前所拥有的。
private static int CalcOdd(int n)
{
if (n <= 1)
return 1;
else
if (n % 2 == 0)
n--;
return n + CalcOdd(n - 2);
}
它不太好用,它包括在加法中传入的数字,这不是我想要的。任何人都可以提出更好的方法吗?我还希望能够将答案移植到偶数,并添加选项以在答案中包含原始传入的数字。
非常感谢
【问题讨论】:
-
家庭作业?如果是这样,请将其标记为这样
-
对于谁反对这个,它有什么问题?问题很清楚,他们提供了示例代码,然后问出了什么问题。当然这可能是家庭作业,但它比“请给我密码”问题要好。