【暴力】Divison UVa 725(暴力入门之除法)

Posted on 2018-03-07 15:41  som_nico  阅读(270)  评论(0编辑  收藏  举报

题目:给你一个数字n,用0~9,10个数字组成两个五位数,使得他们的商为n,按顺序输出所有结果。

分析:暴力。直接枚举第二个数字,范围(1000,100000),然后判断即可。

(根据刘汝佳紫皮)

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int judge(int a,int b)
 4 {
 5     int used[11];
 6     memset(used,0,sizeof(used));
 7     if(b>100000) return 0;
 8     used[0]=1;
 9     while(a)
10     {
11         used[a%10]=1;
12         a/=10;
13     }
14     while(b)
15     {
16         used[b%10]=1;
17         b/=10;
18     }
19     int sum=0;
20     for(int i=0;i<10;i++)
21         sum+=used[i];
22     return (sum==10);
23 }
24 int main()
25 {
26     int n;
27     while(cin>>n)
28     {
29         int i,flag;
30         flag=0;
31         for(i=1234;i<100000;i++)
32         {
33             if(judge(i,i*n))
34             {
35                 flag=1;
36                 cout<<i*n<<"/"<<i<<"="<<n<<endl;
37             }
38         }
39         if(flag==0)
40         {
41             cout<<"no"<<endl;
42         }
43     }
44     return 0;
45 }