21xrx.com
2024-12-23 00:16:56 Monday
登录
文章检索 我的文章 写文章
C++求解对称数
2023-06-28 00:01:57 深夜i     --     --
C++语言 对称数 算法 循环 数字处理

在数学中,对称数指的是将数字从前往后和从后往前看,所得到的结果是一样的数,比如121、1221都是对称数。那么,如何用C++求解对称数呢?

首先需要知道,对称数的位数分奇数位和偶数位两种情况。在奇数位对称数中,中间的数字必须是回文,所以求奇数位对称数只需要枚举每一位的数字,然后在中间的数字上分别枚举0~9进行判断即可。而在偶数位对称数中,最高位不能为0,因此需要从100到999枚举,然后判断是否为对称数即可。

下面是用C++编写的对称数求解代码:


#include<iostream>

#include<cstdio>

#include<cstdlib>

#include<cstring>

#include<cmath>

#include<algorithm>

using namespace std;

int main()

{

  for (int i = 1; i <= 9; i++)

  {

    printf("%d\n", i);

  }

  for (int i = 10; i <= 999; i++)

  {

    int num = i;

    int tmp = num / 10;

    while (tmp)

    {

      num = num * 10 + tmp % 10;

      tmp /= 10;

    }

    if (num == i)

    {

      printf("%d\n", i);

    }

  }

  return 0;

}

该程序中,首先枚举奇数位对称数的每一个数字,然后从10到999枚举偶数位对称数。对于每一个数字,判断是否是对称数,并输出结果。

以上就是用C++求解对称数的方法和代码。需要注意的是,在实际应用中,对称数的范围可能很大,因此需要更加高效的算法来求解。

  
  

评论区

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