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

编程之美——符合条件的整数

时间:2014-08-15 17:38:09      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   io   for   ar   

问题:给定整数N,求最小整数M,使得N*M的十进制表示中只含有1和0;

        当M很大时,机器可能不能表示M,对问题转化:求以最小整数X,使得X的十进制表示中只含1和0,并且被N整除;

        此问题必定有解;可参考:http://blog.csdn.net/spaceyqy/article/details/38337387

代码实现(具体思路参考编程之美或:http://www.cnblogs.com/jfcspring/p/3776388.html):

bubuko.com,布布扣
 1 #include<iostream>
 2 #include<vector>
 3 #include<string>
 4 using namespace std;
 5 
 6 const int N=6;
 7 vector<vector<int> >bigInt;
 8 
 9 void findNum();
10 void printNum(const vector<int> &t);
11 
12 int main()
13 {
14     findNum();
15     return 0;
16 }
17 
18 void findNum()
19 {
20     for(int i=0;i<N;++i)
21     {
22         vector<int>tt;
23         bigInt.push_back(tt);
24     }
25 
26     bigInt[1].push_back(0);
27     
28     //i:记录每一个数组中1的位置
29     //j:余数,为数组下标
30     for(int i=1,j=10%N;;++i,j=(10*j)%N)
31     {
32         if(bigInt[j].size()==0)
33         {
34             bigInt[j].push_back(i);
35         }
36 
37         for(int k=0;k<N;++k)
38         {
39 
40             int t=(k+j)%N;
41             if((bigInt[k].size()>0)&&(i>bigInt[k][bigInt[k].size()-1])&&(bigInt[t].size()==0))
42             {
43                 //(1,3,4)=(1,3)+(4)
44                 bigInt[t]=bigInt[k];
45                 bigInt[t].push_back(i);
46             }
47         }
48 
49         if(bigInt[0].size()>0)
50         {
51             printNum(bigInt[0]);
52             break;
53         }
54     }
55 }
56 
57 //(0,3,4) represent 11001
58 void printNum(const vector<int> &t)
59 {
60     int maxIndex=t.back();
61     string num="";
62 
63     for(int i=0;i<maxIndex+1;++i)
64         num+=0;
65 
66     for(int i=0;i<t.size();++i)
67         num[maxIndex-t[i]]=1;
68 
69     for(int i=0;i<num.size();++i)
70         cout<<num[i];
71 }
View Code

 

编程之美——符合条件的整数,布布扣,bubuko.com

编程之美——符合条件的整数

标签:style   blog   http   color   os   io   for   ar   

原文地址:http://www.cnblogs.com/chengyuz/p/3914736.html

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