• LightOj 1078 Basic Math


    思路:

        设输入的两个数分别为n和a,每一次所得到的数为update:

        开始update=a,依次update分别为update*10+a,这样数据会超出范围,则update每次为update=(update*10+a)%n即可,

        如果update=0,跳出循环;

        只需证明:(update*10+a)%n=(update%n*10+a)%n即可;

                          由(update*10+a)%n=(update%n*10+a%n)%n,因为a<=n,所以a%n=a.证必;

    1078 - Integer Divisibility
    PDF (English) Statistics Forum
    Time Limit: 2 second(s) Memory Limit: 32 MB
    If an integer is not divisible by 2 or 5, some multiple of that number in decimal notation is a sequence of only a digit. Now you are given the number and the only allowable digit, you should report the number of digits of such multiple.

    For example you have to find a multiple of 3 which contains only 1's. Then the result is 3 because is 111 (3-digit) divisible by 3. Similarly if you are finding some multiple of 7 which contains only 3's then, the result is 6, because 333333 is divisible by 7.

    Input
    Input starts with an integer T (≤ 300), denoting the number of test cases.

    Each case will contain two integers n (0 < n ≤ 106 and n will not be divisible by 2 or 5) and the allowable digit (1 ≤ digit ≤ 9).

    Output
    For each case, print the case number and the number of digits of such multiple. If several solutions are there; report the minimum one.

    Sample Input
    Output for Sample Input
    3
    3 1
    7 3
    9901 1
    Case 1: 3
    Case 2: 6
    Case 3: 12


    PROBLEM SETTER: JANE ALAM JAN

    /********************************
        author   : Grant Yuan
        time     : 2014/8/21 0:28
        algorithm: Basic Math
        source   : LightOj 1078
    **********************************/
    #include<bits/stdc++.h>
    
    using namespace std;
    int t;
    int a,b,ans;
    int main()
    {
        scanf("%d",&t);
        for(int i=1;i<=t;i++)
        {
            ans=1;
            scanf("%d%d",&a,&b);
            int temp=b;
            while(temp%a!=0)
            {
                temp=temp*10;
                temp+=b;
                temp%=a;
                ans++;
            }
            printf("Case %d: %d
    ",i,ans);
        }
        return 0;
    }
    


     

  • 相关阅读:
    spring二级缓存的ehcache 的 配置文件
    C/C++联合(Union)浅谈
    C++技巧之名字空间namespace
    VC动态调用DLL的调试方法
    在C++中调用DLL中的函数
    VS编译debug模式静态库(lib)的结尾_d修改
    bash: chkconfig: command not found
    Linux在防火墙中开放SVN端口
    VIM选择文本块/复制/粘贴
    svnserve.conf:12: Option expected的问题解决方法[SVN]
  • 原文地址:https://www.cnblogs.com/codeyuan/p/4254449.html
Copyright © 2020-2023  润新知