• 100c之21:4位反序数


    100c之21:4位反序数

    100c之21:4位反序数

    Table of Contents

    1 问题

    设n是一个四位数,它的9倍恰好是其反序数。反序数就是将整数的数字倒过来形成的整数,比如1234的反序数是4321

    2 分析

    穷举法,穷举范围从1000到1111即可。因为大于1111的四位数乘以九得到的是个五位数,所以最大的穷举数为1111,另外从1000到1111尾数为0的不用考虑

    3 解决方案

     1:  /**
     2:   * @file   021fourdigitinversal.c
     3:   * @author Chaolong Zhang <emacsun@163.com>
     4:   * @date   Tue May 21 18:44:31 2013
     5:   * 
     6:   * @brief  设n是一个四位数,它的9倍恰好是其反序数。反序数就是将整数的数字倒过来形成的整数,比如1234的反序数是4321
     7:   * 
     8:   * 
     9:   */
    10:  
    11:  #include <stdio.h>
    12:  
    13:  int main(int argc, char *argv[])
    14:  {
    15:    int n;
    16:    for (n=1000; n <=1111; ++n)
    17:      {
    18:        if (0 == n%10 ) continue;
    19:        else if (n*9 == ((n%10) * 1000 + ((n/10)%10) *100 + ((n/100)%10)*10 + n/1000) )
    20:          {
    21:            printf ("the inverse number of %d is %d\n",n, n*9);
    22:          }
    23:      }
    24:    return 0;
    25:  }
    

    发现if的判断过程计算步骤太多,可以采用注意计算四个数字的方法诸位对比,只要一位对比补上就不用再比较下去,这样可以减少计算次数。于是,对程序的一点改进。

     1:  /**
     2:   * @file   021fourdigitinversal.c
     3:   * @author Chaolong Zhang <emacsun@163.com>
     4:   * @date   Tue May 21 18:44:31 2013
     5:   * 
     6:   * @brief  设n是一个四位数,它的9倍恰好是其反序数。反序数就是将整数的数字倒过来形成的整数,比如1234的反序数是4321
     7:   * 
     8:   * 
     9:   */
    10:  
    11:  #include <stdio.h>
    12:  
    13:  int main(int argc, char *argv[])
    14:  {
    15:    int n;
    16:    for (n=1000; n <=1111; ++n)
    17:      {
    18:        if (0 == n%10 ) continue;
    19:        else if ( n/1000 == n*9%10 && n/100%10 == n*9/10%10 && n/10%10 == n*9/100%10 && n%10 == n*9/1000 )
    20:          {
    21:            printf ("the inverse number of %d is %d\n",n, n*9);
    22:          }
    23:      }
    24:    return 0;
    25:  }
    

    Date: 2013-05-21 18:54

    Author: emacsun

    Org version 7.8.02 with Emacs version 23

    Validate XHTML 1.0
  • 相关阅读:
    更改数据库sa密码
    单例模式实现 (Singleton)
    linux特殊符号大全
    “增强现实与多媒体”博客园开张了
    关于.NET运行多个版本
    DevExpress V7.2.3源码 Salesman or Opium Up to you
    there is no bool datatype in oralce datatype system
    .NET时代,还有多少人读库源码 求FCL源码
    当学术界在解决其理论问题,工程界形成形成了一个已开发者为核心的生态链
    Div css 管理后台 简易Demo
  • 原文地址:https://www.cnblogs.com/chaolong/p/3091297.html
Copyright © 2020-2023  润新知