问题是这样的:
构建递归函数bool isEven(int a, int b)
,以确定b
中a
的出现是偶数/奇数。
for example:
isEven(9545, 4) returns false
isEven(9545, 5) returns true
我想知道这个问题的边缘情况是什么,我想把这个数字反汇编成b
的子集,并且如果它是偶数/奇数则递归检查每个子集但是我不得不建立这个程序
非常感谢您的帮助,
更新认真思考但没有太多成功 - 我无法弄清楚边缘情况是什么,递归的背景概念是什么。这就是我到目前为止所做的:
void main() {
int n, d;
cin >> n >> d;
if(isEven(n, d))
cout << "Yes" << endl;
else
cout << "No" << endl;;
}
bool isEven(int n, int d)
{
int dgtsnum = digitsInNum(n);
if (dgtsnum == 1)
{
return false;
}
else
{
for (int i = 1; 2 * i < dgtsnum; i++)
powerset(2 * i, n);
}
}
int powerset(int i, int j)
{
}
int digitsInNum(int n)
{
int i = 1;
int j = 10;
while (n / ((int)j) >= 1)
{
i++;
j *= 10;
}
return i;
}
答案 0 :(得分:0)
bool isEven(int a, int b){//a, b >= 0 (AND 9 >= b)
if(a < 10)
return a != b;
return (a % 10 == b) ^ isEven(a / 10, b);
}