UVA - 725 Division

题目链接https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=666

题目大意:

输入一个n,求出所有abcde/fghij=n的情况。

思路:枚举所有情况。因为枚举的数字是从01234~98765,时间是 不可能超限的。

ps:注意格式,搞不好就PE

这题格式好怪,反正我是不知道为啥是这种格式。。。

代码:

 1 #include<iostream>
 2 #include<stdio.h>
 3 #include<string.h>
 4 #include<algorithm>
 5 using namespace std;
 6 int main ()
 7 {
 8     int n;
 9     int T=0;
10     while(cin>>n)
11     {
12         if(n==0)    break;
13         if(T++) cout<<endl;
14         int vis[15];
15         bool flag=false;
16         for (int i=1234;i<=98765;i++)
17         {
18             bool fl=true;
19             memset(vis,0,sizeof(vis));
20             int tmp=i*n;
21             if(tmp>98765)
22                 break;
23             int a,b,c,d,e,f,g,h,x,j;
24             a=i/10000;
25             vis[a]++;
26             b=(i/1000)%10;
27             vis[b]++;
28             c=((i/100)%100)%10;
29             vis[c]++;
30             d=(((i/10)%1000)%100)%10;
31             vis[d]++;
32             e=i%10;
33             vis[e]++;
34             f=tmp/10000;
35             vis[f]++;
36             g=(tmp/1000)%10;
37             vis[g]++;
38             h=((tmp/100)%100)%10;
39             vis[h]++;
40             x=(((tmp/10)%1000)%100)%10;
41             vis[x]++;
42             j=tmp%10;
43             vis[j]++;
44             for(int k=0;k<10;k++)
45             {
46                 if(vis[k]>1)
47                     fl=false;
48             }
49             if(fl)
50             {
51                 if(tmp<10000&&i<10000)
52                     cout<<'0'<<tmp<<" / "<<'0'<<i<<" = "<<n<<endl;
53                 else if(tmp<10000)
54                     cout<<'0'<<tmp<<" / "<<i<<" = "<<n<<endl;
55                 else if(i<10000)
56                     cout<<tmp<<" / "<<'0'<<i<<" = "<<n<<endl;
57                 else
58                     cout<<tmp<<" / "<<i<<" = "<<n<<endl;
59                 flag=true;
60             }
61         }
62         if(!flag)
63             cout<<"There are no solutions for "<<n<<'.'<<endl;
64     }
65     return 0;
66 }

 

posted @ 2017-07-25 21:16  ISGuXing  阅读(164)  评论(0编辑  收藏  举报