zoukankan      html  css  js  c++  java
  • HDU2099 整除的尾数【模除】

    问题链接HDU2099 整除的尾数

    问题简述参见上述链接。

    问题分析:开始时,采用枚举法来解,当时用C语言写了程序。后面又找到了好办法,用C++语言重写了程序,可以有个比较。

    新写的程序放在前面。


    这个问题使用枚举法进行求解,并不是一个难题。要点有以下3点:

    1.读题,正确处理输入;

    2.按照要求输出结果,即输出两位整数且前面补0;

    3.控制空格,即最后一个数不能输出后面的空格,只是程序技巧的问题。

    采用枚举法,虽然简单易行,本程序也AC了。然而执行时间长,应该有更加巧妙快速的实现方法。

    程序说明(略)。


    AC的C++语言程序(非枚举)如下:

    /* HDU2099 整除的尾数 */
    
    #include <iostream>
    
    using namespace std;
    
    const int MOD = 100;
    
    int main()
    {
        int a, b, min;
    
        while(cin >> a >> b) {
            if(a == 0 && b == 0)
                break;
    
            // 计算最小的答案
            min = (b - a * MOD % b) % b;
    
            // 循环输出结果
            for(int i=min; i<MOD; i+=b) {
                if(i != min)
                    printf(" ");
                printf("%02d", i);
            }
            printf("
    ");
        }
    
        return 0;
    }


    AC的C++语言程序(枚举法)如下:

    /* HDU2099 整除的尾数 */
    
    #include <iostream>
    
    using namespace std;
    
    const int MOD = 100;
    
    int main()
    {
        int a, b, count;
    
        while(cin >> a >> b) {
            if(a == 0 && b == 0)
                break;
    
            a *= MOD;
    
            count = 0;
            for(int i=0; i<MOD; i++)
                if((a + i) % b == 0) {
                    if(++count > 1)
                        printf(" ");
                    printf("%02d", i);
                }
            printf("
    ");
        }
    
        return 0;
    }


    AC的C语言程序如下:

    /* HDU2099 整除的尾数 */
    
    #include <stdio.h>
    
    int main(void)
    {
        int a, b, i;
    
        for(;;) {
            scanf("%d%d", &a, &b);
            if(a==0 && b==0)
                break;
    
            int count = 0;
    
            a *= 100;
            for(i=0; i<100; i++)
                if((a+i)%b == 0) {
                    if(++count > 1)
                        printf(" ");
                    printf("%02d", i);
                }
            printf("
    ");
        }
    
        return 0;
    }



  • 相关阅读:
    Project Euler 28 Number spiral diagonals
    nrm是什么?以及nrm的安装与命令
    asar 如何解密加密?electron 的 asar 的具体用法
    ARDUINO 积木式编辑器整理
    关于Nodejs开发桌面应用。NW.js 和 Electron 优缺点分析对比
    webkit、cef、nwjs、electron、 miniblink浏览器内核优缺点
    cef开启摄像头和录音
    连接AWS Ubuntu服务器
    使用cnpm install提示package not found
    centos7 升级内核
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564906.html
Copyright © 2011-2022 走看看