21xrx.com
2024-09-19 09:26:53 Thursday
登录
文章检索 我的文章 写文章
C++实现对称数的求解
2023-06-22 10:48:00 深夜i     --     --
C++ 对称数 求解

对称数(也叫回文数)是一种数字具有对称性的数,正着读和倒着读都是一样的数,比如121、2332、999等。在程序设计中,需要经常判断一个数字是否为对称数。本文将介绍如何使用 C++ 实现对称数的求解。

首先,我们需要定义一个函数来判断一个数字是否为对称数。该函数的主要思路是将数字转化为字符串,然后判断字符串的正反两个方向是否相等。代码如下:


bool isPalindrome(int n){

  string str = to_string(n);

  int len = str.length();

  for(int i = 0; i < len / 2; i++){

    if(str[i] != str[len - i - 1])

      return false;

    

  }

  return true;

}

在主函数中,我们可以调用该函数来判断一个数字是否为对称数。代码如下:


int main(){

  int n;

  cout << "请输入一个数字: ";

  cin >> n;

  if(isPalindrome(n))

    cout << n << " 是对称数" << endl;

  else

    cout << n << " 不是对称数" << endl;

  

  return 0;

}

运行程序后,我们可以输入任意一个数字进行测试。例如,输入121,程序输出“121 是对称数”。

除了判断一个数字是否为对称数,我们还可以用 C++ 实现对称数的查找。具体来说,我们可以编写一个函数,该函数接受一个数字 n 作为参数,从 n 开始向上查找对称数,直到找到第一个对称数为止。代码如下:


int findNextPalindrome(int n){

  int i = n + 1;

  while(!isPalindrome(i)){

    i++;

  }

  return i;

}

在主函数中,我们可以调用该函数来查找一个数之后的对称数。代码如下:


int main(){

  int n;

  cout << "请输入一个数字: ";

  cin >> n;

  int palindrome = findNextPalindrome(n); // 查找 n 之后的对称数

  cout << "第一个对称数为:" << palindrome << endl;

  return 0;

}

运行程序后,我们可以输入任意一个数字进行测试。例如,输入123,程序输出“第一个对称数为:131”。

总之,C++ 的实现对称数的方法是很简单的,我们只需要定义一个函数来判断是否为对称数,再编写一个函数来查找对称数即可。这些函数的实现可以帮助我们更好地理解程序设计中的算法思想。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复
    相似文章