标签:
Description
Input
Output
Sample Input
2
6
19
0
Sample Output
10
100100100100100100
111111111111111111
题意是求出n任意一个倍数而这个数是只有0和1构成的十进制整数,输出任意符合题意的答案即可;
我们可以输出最小的符合条件的;这个数第一位一定为1;接着判断10,11,101,100,110,111......;可以用bfs来写;
代码如下:
#include <iostream> #include <cstdio> #include <algorithm> #include <queue> using namespace std; __int64 bfs(int n) { queue<__int64>Q; Q.push(1); long long q; while(!Q.empty()) { q=Q.front(); Q.pop(); if(q%n==0) return q; Q.push(q*10); Q.push(q*10+1); } return -1; } int main() { int n; __int64 ans; while(scanf("%d",&n),n) { ans=bfs(n); printf("%I64d\n",ans); } return 0; }
标签:
原文地址:http://www.cnblogs.com/zhengguiping--9876/p/4465817.html