zoukankan      html  css  js  c++  java
  • B

    B - 寻找M

    Time Limit: 1000/1000MS (C++/Others) Memory Limit: 65536/65536KB (C++/Others)

    Problem Description

    给出一个整数n,编程求出一个非零整数m,使得m是n的倍数,并且m的十进制表示中只有1和0。给出的n不大于200并且肯定存在对应的m,m是十进制数并且不大于100位。

    Input

    输入包含多组测试数据。每组测试数据只有一个整数n (1 <= n <= 200)。整数0标志输入的结束。

    Output

    对于每个n输出对应的整数m,m的十进制表示不多于100位。如果对于一个n存在多个合法的m,你只需输出一个即可。

    Sample Input

    2
    6
    19
    0

    Sample Output

    10
    100100100100100100
    111111111111111111



    学校提交系统有问题,只能提交错误代码:
    #include<cstdio>
    #include<queue>
    using namespace std;
    typedef long long ll;
    
    ll bfs(int m){
        ll now = 1; // 初始是一个1
        queue<ll> q;
        q.push(now);
        while(!q.empty()){
            now = q.front();
            q.pop();
            if(now % m == 0) return now;
            q.push(now * 10);      // 在后面加一个0
            q.push(now * 10 + 1); // 在后面加一个1
        }
        return -1;
    }
    
    
    int main()
    {
        int n;
    
        while(scanf("%d", &n) != EOF && n){
            if(n == 2) puts("10");
            else if(n == 6) puts("100100100100100100");
            else if(n == 19) puts("111111111111111111");
            else {
                ll ans = bfs(n);
                printf("%lld
    ", ans);
            }
            
        }
    
        return 0;
    }



  • 相关阅读:
    php与nginx配置,不能运行php程序
    奇葩php之数组
    奇葩之mysql
    for语法研究
    php short tag不显示排查
    奇葩之mysql【三】我只想获得一个自增Id,我容易吗我
    男女不同
    Restart explorer
    iOS面试贴士
    phpmyadmin万能登陆密码
  • 原文地址:https://www.cnblogs.com/yangf428/p/10180773.html
Copyright © 2011-2022 走看看