21xrx.com
2024-11-08 23:25:32 Friday
登录
文章检索 我的文章 写文章
C++实现对称数判断
2023-07-14 22:33:30 深夜i     --     --
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;

}

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

  
  

评论区

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