51 nod 1109 01组成的N的倍数

Posted 一蓑烟雨任生平

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了51 nod 1109 01组成的N的倍数相关的知识,希望对你有一定的参考价值。

基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题
技术分享 收藏
技术分享 关注
给定一个自然数N,找出一个M,使得M > 0且M是N的倍数,并且M的10进制表示只包含0或1。求最小的M。
 
例如:N = 4,M = 100。
Input
输入1个数N。(1 <= N <= 10^6)
Output
输出符合条件的最小的M。
Input示例
4
Output示例
100
思路:同上题。
#include<queue>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
struct nond{
    string s;
    int mod;
}cur,net;
queue<nond>que;
int n;
bool vis[1000001];
int main(){
    scanf("%d",&n);
    cur.s="1";cur.mod=1;
    que.push(cur);
    while(!que.empty()){
        cur=que.front();
        que.pop();
        net.mod=(cur.mod*10)%n;
        net.s=cur.s+0;
        if(net.mod==0){
            cout<<net.s;
            return 0;
        }
        if(!vis[net.mod]){
            que.push(net);
            vis[net.mod]=1;
        }
        net.mod=(cur.mod*10+1)%n;
        net.s=cur.s+1;
        if(net.mod==0){
            cout<<net.s;
            return 0;
        }
        if(!vis[net.mod]){
            que.push(net);
            vis[net.mod]=1;
        }
    }
}

 

以上是关于51 nod 1109 01组成的N的倍数的主要内容,如果未能解决你的问题,请参考以下文章

51Nod 1109 01组成的N的倍数

51Nod 1109 01组成N的倍数

51Nod 1109 01组成的N的倍数

POJ 1426 Find The Multiple &amp;&amp; 51nod 1109 01组成的N的倍数 (BFS + 同余模定理)

1109 01组成的N的倍数

1109 01组成的N的倍数