题目大意
找倍数
给你一个数,找到一个能数是它的倍数的数,当然这个数只能由0和1组成.......这个数最大200,比较唬人,其实这个数在最大也不超过2^64.。。。。简单广搜一下
/////////////////////////////////////////////
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<queue>
using namespace std;
long long BFS(long long s)
{
queue<long long>Q;
Q.push(1);
while(Q.size())
{
long long q = Q.front();
Q.pop();
if(q % s == 0)
return q;
Q.push(q*10);
Q.push(q*10+1);
}
return -1;
}
int main()
{
long long s;
while(scanf("%lld", &s), s != 0)
{
long long ans = BFS(s);
printf("%lld ", ans);
}
return 0;
#include<string.h>
#include<math.h>
#include<queue>
using namespace std;
long long BFS(long long s)
{
queue<long long>Q;
Q.push(1);
while(Q.size())
{
long long q = Q.front();
Q.pop();
if(q % s == 0)
return q;
Q.push(q*10);
Q.push(q*10+1);
}
return -1;
}
int main()
{
long long s;
while(scanf("%lld", &s), s != 0)
{
long long ans = BFS(s);
printf("%lld ", ans);
}
return 0;
}