POJ1426(KB1-E 暴力搜索)
Find The Multiple
Description
Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and there is a corresponding m containing no more than 100 decimal digits.
Input
The input file may contain multiple test cases. Each line contains a value of n (1 <= n <= 200). A line containing a zero terminates the input.
Output
For each value of n in the input print a line containing the corresponding value of m. The decimal representation of m must not contain more than 100 digits. If there are multiple solutions for a given value of n, any one of them is acceptable.
Sample Input
2 6 19 0
Sample Output
10 100100100100100100 111111111111111111
Source
1 //2017-02-23 2 #include <iostream> 3 #include <cstdio> 4 #include <cstring> 5 6 using namespace std; 7 8 int ans[110], n; 9 bool ok; 10 11 void dfs(unsigned long long num, int pos) 12 { 13 if(ok || pos == 20)return; 14 if(num%n==0){ 15 cout<<num<<endl; 16 ok = true; 17 return; 18 }else{ 19 dfs(num*10, pos+1); 20 dfs(num*10+1, pos+1); 21 } 22 } 23 24 int main() 25 { 26 while(cin>>n && n) 27 { 28 ok = false; 29 dfs(1, 0); 30 } 31 32 return 0; 33 }