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行,这两行的作用就是将原数从个位开始,逐位往高位移动,直到反转完毕。

  • 相关阅读:
    最后一次作业-- 总结报告
    第14.15周作业
    第七周作业
    第六周作业
    第四周作业
    第三周作业。
    第四次作业
    第三次作业
    第二次作业
    第一次作业
  • 原文地址:https://www.cnblogs.com/kingos/p/4501358.html
Copyright © 2011-2022 走看看