我有一个递归函数,它检查数字N是否包含数字K并输出“是”或“否”。对于N = 5565和K = 5,该版本显示“是,是,否,是”。
int digit(int n, int k)
{
if (n < 0)
n = -1*n;
if (n/10 > 0) {
digit(n/10, k);
}
if(n % 10 == k) cout<<"yes"<<endl;
else cout<<"no"<<endl;
}
int main()
{
digit(5565, 5);
return 0;
}
我的问题是如何只显示一个“是”或“否”
答案 0 :(得分:3)
你的条件错了
void digit(int n, int k)
{
if (n < 0)
n = -1 * n;
if (n % 10 == k)
{
cout << "Yes\n";
return;
}
else if (n / 10 > 0)
digit(n / 10, k);
else
cout << "no" << endl;
}