zoukankan      html  css  js  c++  java
  • 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;
    }
    


     

  • 相关阅读:
    ColorPix——到目前为止最好用的屏幕取色器
    ES+VBA 实现批量添加网络图片
    SQL语句-delete语句
    Visual C++ 2013 and Visual C++ Redistributable Package 更新版官网下载地址
    centos长ping输出日志的脚本
    Centos 常用命令
    c#连接数据库
    C#窗体间的跳转传值
    c#邮件发送
    C#WIFI搜索与连接
  • 原文地址:https://www.cnblogs.com/codeyuan/p/4254449.html
Copyright © 2011-2022 走看看