21xrx.com
2024-09-20 00:59:54 Friday
登录
文章检索 我的文章 写文章
C++中如何判断一个数中是否包含多个相同数字
2023-06-22 06:16:27 深夜i     --     --
C++ 判断 数字 相同数字 包含

在C++编程中,有时需要判断一个数中是否包含多个相同的数字。这种情况在数字游戏、密码学等领域都有广泛的应用。本文将介绍两种不同的方法来实现这个功能。

方法一:将数字分离为单个数字进行比较

第一种方法是将数字分离为单个数字,然后进行比较。通常会使用一个循环,将数字的每一位数依次取出,然后和其它数字比较。

以下是一个使用此方法的示例代码:


#include <iostream>

using namespace std;

int main() {

  int num = 123321;

  int digit[10] = {0};

  int temp;

  while (num > 0) {

    temp = num % 10;

    digit[temp]++;

    num = num / 10;

  }

  bool flag = false;

  for (int i = 0; i < 10; i++) {

    if (digit[i] > 1)

      flag = true;

      break;

    

  }

  if (flag)

    cout << "此数包含多个相同数字!" << endl;

   else

    cout << "此数不包含多个相同数字!" << endl;

  

  return 0;

}

在本示例中,我们声明了一个数组`digit`,用于存储输入的数字中每个数字出现的次数。然后利用`while`循环,将数字的各个位数取出,保存在一个临时变量`temp`中。然后将`digit`数组中相应的数字加1。最后,通过`for`循环遍历`digit`数组,如果数组中的任意一个元素大于1,则说明此数包含多个相同数字,将标识变量`flag`置为`true`。

方法二:将数字转换为字符串进行比较

第二种方法是将数字转换为字符串,然后依次比较字符串中的每个字符。以下是一个使用此方法的示例代码:


#include <iostream>

#include <string>

using namespace std;

int main() {

  int num = 123321;

  string str = to_string(num);

  bool flag = false;

  for (int i = 0; i < str.length(); i++) {

    for (int j = i + 1; j < str.length(); j++) {

      if (str[i] == str[j])

        flag = true;

        break;

      

    }

    if (flag)

      break;

    

  }

  if (flag)

    cout << "此数包含多个相同数字!" << endl;

   else

    cout << "此数不包含多个相同数字!" << endl;

  

  return 0;

}

在本示例中,我们使用了`to_string`函数,将数字转换为字符串。然后利用两个嵌套的`for`循环,依次比较字符串中的每个字符。如果任意两个字符相等,则说明此数包含多个相同数字,将标识变量`flag`置为`true`。

这两种方法都可以用来判断一个数中是否包含多个相同数字。需要使用哪种方法,可以根据实际情况进行选择。在使用第二种方法时,请确保C++编译器支持`to_string`函数。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复