21xrx.com
2024-12-23 00:39:17 Monday
登录
文章检索 我的文章 写文章
C++ 中使用 for 循环判断回文数
2023-06-28 00:58:35 深夜i     --     --
C++ for循环 判断 回文数

在计算机编程中,判断回文数是一个常见的问题。回文数是指正着读和倒着读都完全一样的数。比如121、323、12321等都是回文数。在C++中,可以使用for循环来判断一个数是否为回文数。

首先,我们需要将这个数转化为字符串形式。这可以通过将它除以10取余数的方法来逐个抽取数字,然后将它们拼成字符串。以下是将一个整数转换为字符串的示例代码:


string numStr = "";

int num = 121;

while(num > 0) {

  numStr += to_string(num % 10);

  num /= 10;

}

在上面的代码中,我们首先初始化一个空字符串numStr,然后用while循环来逐个抽取数字。在循环中,我们将num除以10并取余数(即获取最后一位数字),然后将它拼接到numStr的末尾。最后,我们将num除以10以去掉最后一位数字,并继续循环,直到num变为0。

接下来,我们需要比较字符串的第一个字符和最后一个字符,然后依次向中间逼近。如果它们相等,则我们继续比较下一个字符;如果它们不相等,则该数不是回文数。以下是比较字符串的示例代码:


bool isPalindrome = true;

for(int i = 0; i < numStr.length()/2; i++) {

  if(numStr[i] != numStr[numStr.length()-1-i])

    isPalindrome = false;

    break;

  

}

在上面的代码中,我们使用for循环遍历字符串中的每个字符。我们用i从字符串开头开始计数,用numStr.length()-1-i表示从字符串末尾开始计数。通过这种方式,我们可以同时比较第一位和最后一位、第二位和倒数第二位,以此类推。如果任何一对字符不匹配,我们设置isPalindrome为false并跳出循环。

最后,我们可以输出结果,以告诉用户这个数是否是回文数。以下是完整的代码:


#include<iostream>

#include<string>

using namespace std;

int main() {

  int num = 121;

  string numStr = "";

  while(num > 0) {

    numStr += to_string(num % 10);

    num /= 10;

  }

  bool isPalindrome = true;

  for(int i = 0; i < numStr.length()/2; i++) {

    if(numStr[i] != numStr[numStr.length()-1-i])

      isPalindrome = false;

      break;

    

  }

  if(isPalindrome)

    cout << num << " is a palindrome number." << endl;

   else

    cout << num << " is not a palindrome number." << endl;

  

  return 0;

}

通过这种方式,我们可以使用C++的for循环来判断回文数。虽然它只能处理整数类型的回文数,但它可以很容易地修改为处理更复杂的情况,比如字符串、数组等。

  
  

评论区

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