必须有一种方法可以使用递归,加法和减法检查数字是偶数还是奇数,但不使用循环。
我只能走得那么远(但我仍在使用%
):
boolean odd = (k % 2 == 1);
有人有想法吗?
谢谢:)
答案 0 :(得分:1)
bool IsEven(int num)
{
if (num == 1) return false;
if (num == 0) return true;
return IsEven(num - 2);
}
答案 1 :(得分:1)
只需检查最低位是否设置
IsOdd = (k & 1) != 0;
答案 2 :(得分:0)
反复减去2(递归)
基本情况:0返回true(偶数),1返回false(奇数)
答案 3 :(得分:0)
您可以在C中执行此操作,例如:
bool isOdd(int num)
{
if (num==2) return false;
else if(num==1) return true;
else return isOdd(num-2);
}
请注意,此程序仅适用于大于0的数字。如何为所有数字执行此操作留作练习:)
答案 4 :(得分:0)
您可以尝试以下解决方案:
int isEven(int n) {
if (n == 0) return 1; // zero is even, return true
return isOdd(n - 1);
}
int isOdd(int n) {
if (n == 1) return 1; // one is odd, return true
else return isEven(n - 1);
}