C ++递归以检查数字是否包含数字

时间:2014-05-19 16:35:04

标签: c++ recursion

我有一个递归函数,它检查数字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;
}

我的问题是如何只显示一个“是”或“否”

1 个答案:

答案 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;
 }