码迷,mamicode.com
首页 > 其他好文 > 详细

POJ - 1426 Find The Multiple

时间:2020-06-16 12:50:35      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:lang   const   val   contains   计算   检查   return   hose   ogr   

题目:

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

这道题看似麻烦,实际上直接暴力搜索就行了。。。
利用状态压缩搜索2^20以内的所有二进制数(之所以次数是20,是因为再大一些就超过long long的范围而
溢出了,实际上这个范围已经很多余了,很小的数就能满足条件),然后每个都换成二进制表示,这个二进制
表示直接当作十进制数就是m,然后检测每一个m是否符合要求,找到符合要求的输出就行了。
代码:
 1 #include<iostream>
 2 using namespace std;
 3 int line[100]={0}; //倍数不会大于100
 4 const int LEN=20;
 5 
 6 int main(){
 7     int n=0;
 8 
 9     cin >>n;
10     while(n!=0){
11         //状态压缩
12         for(long long i=1;i<(2<<LEN);i++){
13             for(int j=0;j<LEN;j++){
14                 line[j]=(i>>j)&1;
15             }
16             int len=LEN-1; //m的长度
17             while(line[len]==0&&len>=0){
18                 len--; //找到m的长度
19             }
20             long long m=0;
21             for(int j=len;j>=0;j--){
22                 m=m*10+line[j]; //计算m
23             }
24             //检查m是不是n的倍数
25             if(m%n==0){
26                 cout <<m<<endl;
27                 break;
28             }
29         }
30         cin >>n;
31     }
32 
33     system("pause");
34     return 0;
35 }

 

POJ - 1426 Find The Multiple

标签:lang   const   val   contains   计算   检查   return   hose   ogr   

原文地址:https://www.cnblogs.com/shiyu-coder/p/13140086.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!