21xrx.com
2025-04-15 13:27:24 Tuesday
文章检索 我的文章 写文章
C++实现对称数判断
2023-07-14 22:33:30 深夜i     65     0
C++ 对称数 判断

对称数,也叫回文数,是指从左往右和从右往左读数完全相同的数字。例如,121和1221就是对称数,而1234不是。

使用C++语言可以很方便地实现对称数的判断。下面介绍一种简单的算法。

首先,将数字转换为字符串。可以使用to_string函数来实现。例如,将数字1234转换为字符串s,代码如下:

int num = 1234;
string s = to_string(num);

接下来,利用双指针法来判断字符串是否对称。双指针法是指从字符串两端分别设置一个指针,逐步向中间靠近,判断两个指针所指的字符是否相同。代码如下:

int left = 0, right = s.size()-1;
while (left < right) {
  if (s[left] != s[right])
    cout << "不是对称数" << endl;
    return 0;
  
  left++;
  right--;
}
cout << "是对称数" << endl;

在while循环中,只要出现两个指针所指的字符不相同的情况,就可以判断该数不是对称数,直接输出结果。否则,继续判断下一位,直到左右指针相遇为止,判断该数是对称数。

下面是完整的代码:

#include <iostream>
#include <string>
using namespace std;
int main()
{
  int num = 12321;
  string s = to_string(num);
  int left = 0, right = s.size()-1;
  while (left < right) {
    if (s[left] != s[right])
      cout << "不是对称数" << endl;
      return 0;
    
    left++;
    right--;
  }
  cout << "是对称数" << endl;
  return 0;
}

使用上述算法,可以方便地判断一个数字是否为对称数。如果需要判断多个数字,可以将上述代码封装成一个函数,并传入数字参数即可。

  
  

评论区

请求出错了