21xrx.com
2025-03-21 18:07:26 Friday
文章检索 我的文章 写文章
C++实现回文数判断
2023-07-05 12:18:02 深夜i     15     0
C++ 回文数 实现 判断

回文数是指一个数字从左至右和从右至左读都是一样的,例如121、1221、12321都是回文数。在编程中,我们可以使用C++语言来实现回文数的判断。本文将为你介绍如何使用C++语言来实现回文数的判断。

1. 获取用户输入的数字

在开始实现回文数判断之前,我们需要先获取用户输入的数字。可以使用C++中的cin语句来实现。例如:

int num;
cout << "请输入一个数字:";
cin >> num;

2. 将数字转换为字符串

接下来,我们需要将用户输入的数字转换为字符串,这样才能进行回文数的判断。可以使用C++中的to_string函数来实现。例如:

string strNum = to_string(num);

3. 判断字符串是否回文

得到字符串之后,我们需要对字符串进行判断,判断其是否为回文数。可以使用双指针法来实现,一个指针从字符串的左侧开始进行遍历,另一个指针从字符串的右侧开始进行遍历,对比它们所指向的字符是否相等。如果都相等,指针分别向字符串的中间移动;如果不相等,则表示该字符串不是回文数。例如:

bool isPalindrome = true;
int left = 0, right = strNum.size() - 1;
while (left <= right) {
  if (strNum[left] != strNum[right])
    isPalindrome = false;
    break;
  
  left++;
  right--;
}

4. 输出结果

最后,我们需要输出判断结果。如果字符串是回文数,则输出“是回文数”,否则输出“不是回文数”。例如:

if (isPalindrome)
  cout << num << "是回文数" << endl;
else
  cout << num << "不是回文数" << endl;

至此,我们使用C++语言成功实现了回文数的判断。完整的代码如下:

#include <iostream>
#include <string>
using namespace std;
int main() {
  int num;
  cout << "请输入一个数字:";
  cin >> num;
  string strNum = to_string(num);
  bool isPalindrome = true;
  int left = 0, right = strNum.size() - 1;
  while (left <= right) {
    if (strNum[left] != strNum[right])
      isPalindrome = false;
      break;
    
    left++;
    right--;
  }
  if (isPalindrome)
    cout << num << "是回文数" << endl;
   else
    cout << num << "不是回文数" << endl;
  
  return 0;
}

  
  

评论区