zoukankan      html  css  js  c++  java
  • 数论

    Find The Multiple
    Time Limit: 1000MS   Memory Limit: 10000K
    Total Submissions: 16995   Accepted: 6921   Special Judge

    Description

    Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.

    Input

    The input file may contain multiple test cases. Each line contains a value of n (1 <= n <= 200). A line containing a zero terminates the input.

    Output

    For each value of n in the input print a line containing the corresponding value of m. The decimal representation of m must not contain more than 100 digits. If there are multiple solutions for a given value of n, any one of them is acceptable.

    Sample Input

    2
    6
    19
    0

    Sample Output

    10
    100100100100100100
    111111111111111111

    【题目大意】

    给出一个整数n,(1 <= n <= 200)。求出任意一个它的倍数m,要求m必须只由十进制的'0'或'1'组成。

    【题目分析】

    数论 +bfs

    用到了同余定理,用bfs搜索当前位,每位都只可能是0或1,所以这是双入口的bfs,同时还涉及到了大数的知识。

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cstdlib>
    #include<cmath>
    #include<algorithm>
    using namespace std;
    int mod[524286]; 
    int main(int i)
    {
        int n;
        while(cin>>n)
        {
            if(!n)
                break;
    
            mod[1]=1%n;  
            for(i=2;mod[i-1]!=0;i++)  
                mod[i]=(mod[i/2]*10+i%2)%n;
            i--;
            int pm=0;
            while(i)
            {
                mod[pm++]=i%2;   
                i/=2;
            }
            while(pm)
                cout<<mod[--pm];  //倒序输出
            cout<<endl;
        }
        return 0;
    }
  • 相关阅读:
    第03组 Alpha冲刺(2/4)
    第03组 Alpha冲刺
    第09组 Beta版本演示
    第09组 Beta冲刺(4/4)
    第09组 Beta冲刺(3/4)
    第09组 Beta冲刺(2/4)
    第09组 Beta冲刺(1/4)
    第09组 Alpha事后诸葛亮
    第09组 Alpha冲刺(4/4)
    第09组 Alpha冲刺(3/4)
  • 原文地址:https://www.cnblogs.com/crazyacking/p/3762947.html
Copyright © 2011-2022 走看看