zoukankan      html  css  js  c++  java
  • 判断回文数的问题

     如何判断一个数为回文数。某些教材上给出判断五位数的方法,分别分离出个位、十位、千位和万位,然后判断个位和万位、千位和十位是否相等。这种方法的局限性太大,只能判断五位数的回文数。

    还有一种思路,把接受到的数字直接存为字符串,然后头尾两个指针逐个比较是否相等,这种方法我其实挺无语的,本来是好好的一个数字,为什么要存成一个字符串呢。。。

    接下来介绍另外一种思路:将原数反转,然后进行判断

    上代码

     1 int main()
     2 {
     3         int n;
     4         int temp;
     5         int sum=0;
     6         printf("input:");
     7         scanf("%d",&n);
     8         temp=n;                                 //设置临时变量
     9         do
    10         {
    11                 sum=sum*10+temp%10;    
    12                 temp=temp/10;                   //从最后一位开始,将原数倒序输出
    13         }while(temp);
    14         if(sum==n)
    15                 printf("%d是回文数",n);
    16         else
    17                 printf("%d不是回文数",n);
    18         return 0;
    19 }

    最关键的地方就是11和12行,这两行的作用就是将原数从个位开始,逐位往高位移动,直到反转完毕。

  • 相关阅读:
    [SCOI2005]栅栏
    状压dp常用操作
    [SCOI2005]互不侵犯
    欧拉函数
    hdu5179 beautiful number
    hdu4460 Friend Chains
    exgcd详解
    hdu6468 zyb的面试
    hdu1978 How many ways
    hdu1312 Red and Black
  • 原文地址:https://www.cnblogs.com/kingos/p/4501358.html
Copyright © 2011-2022 走看看