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时,程序运行结果如下:


  • 相关阅读:
    pyCharm django 中新加app
    Amazon Redshift 架构
    Amazon DynamoDB 概述
    Amazon EFS 性能
    Amazon RDS 现在支持 Storage Auto Scaling
    只读副本与多可用区部署
    RDS也和EC2一样支持snapshot的跨Region复制:Cross-Region Snapshot Copy for Amazon RDS
    Automated Cross-Region Snapshot Copy for Amazon Redshift
    EC2的跨Region复制或部署,Cross Region EC2 AMI Copy
    RDS for MySQL, PostgreSQL, Aurora 都支持Cross-Region Read Replicas。采用异步复制,只读副本有网络时延
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564881.html
Copyright © 2011-2022 走看看