题目意思
给你一个整数n,让你找出一个只包含0和1的数是n的倍数。
解题思路
这是一个特殊判断题,只要能找到任意一个满足条件的数即可。我们就用广搜从1开始去搜,找到只包含0和1的数是n的倍数输出即可。
代码部分
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <math.h>
#include <queue>
using namespace std;
#define LL long long
const int maxn=1e5+10;
int n;
void bfs(LL s)
{
queue<LL>Q;
Q.push(s);
while(!Q.empty())
{
LL t=Q.front();
Q.pop();
if(t%n==0)
{
printf("%lld\n",t);
return;
}
Q.push(t*10);
Q.push(t*10+1);
}
}
int main()
{
while(~scanf("%d",&n))
{
if(n==0)
break;
bfs(1);
}
return 0;
}