zoukankan      html  css  js  c++  java
  • I00010 打印1到输入数之间的回文数

    对于一个数,要判定它是否是回文数,直观的做法是先判定其最高位首位)与最低位最后一位)是否相同,如果不同则不是回文数;如果相同则其掉其做高位和最低位,对剩余的位继续进行判定;如果剩余的位只有一位或零位(即整个数是偶数位)则为回文数。

    本程序就是基于这样的基本思想进行计算的。

    本程序通用性强,可以计算1到任意指定数之间的所有回文数。

    计算回文数还可以用数字字符组合的方法来实现,算法上采用回溯法。

    程序如下:

    /* 打印输出1到输入数之间的回文数 */
    
    #include <stdio.h>
    
    int isPalindrome(long, long);
    
    int main(void)
    {
        long n, i, mod = 1;
    
        scanf("%ld", &n);
        for(i=1; i<=n; i++) {
            if(i == mod * 10)
                mod *= 10;
            if(isPalindrome(i, mod))
                printf("%ld ", i);
        }
        printf("
    ");
    
        return 0;
    }
    
    // 判断n是否为回文数的函数
    // 参数n为需要判断是否为回文数的数
    // 参数bigmod,若n为m位数,其值为10^m-1(10的m-1次方)
    // 参数bigmod必须事先正确设置
    int isPalindrome(long n, long bigmod)
    {
        int flag = 1;
    
        for(;;) {
            // 判断首位与末位是否相同,不同则不是回文数
            if(n/bigmod != n%10) {
                flag = 0;
                break;
            }
    
            // 如果只剩下1位或2位结束
            if(bigmod <= 10)
                break;
    
            // 去掉最高位和最低位
            n %= bigmod;
            n /= 10;
            bigmod /= 100;
        }
    
        return flag;
    }
    关键代码:

    // 判断n是否为回文数的函数
    // 参数n为需要判断是否为回文数的数
    // 参数bigmod,若n为m位数,其值为10^m-1(10的m-1次方)
    // 参数bigmod必须事先正确设置
    int isPalindrome(long n, long bigmod)
    {
        int flag = 1;
    
        for(;;) {
            // 判断首位与末位是否相同,不同则不是回文数
            if(n/bigmod != n%10) {
                flag = 0;
                break;
            }
    
            // 如果只剩下1位或2位结束
            if(bigmod <= 10)
                break;
    
            // 去掉最高位和最低位
            n %= bigmod;
            n /= 10;
            bigmod /= 100;
        }
    
        return flag;
    }
    输入20000时,程序运行结果如下:


  • 相关阅读:
    ClickOnce發布經驗
    reporting Server組件不全引起的致命錯誤
    異步調用
    Usercontrol Hosted in IE
    MATLAB命令大全(转载)
    一种保护眼睛的好方法
    关于oracle自动编号
    An Algorithm Summary of Programming Collective Intelligence (1)
    An Algorithm Summary of Programming Collective Intelligence (3)
    An Algorithm Summary of Programming Collective Intelligence (4)
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564882.html
Copyright © 2011-2022 走看看