UVA

题意:从00000-99999中选出两个数字,使得这两个数字相除为n  并且,两个数字不得有重复数字。注意:前导0必须有

 1 #include<iostream>
 2 #include<algorithm>
 3 using namespace std;
 4 int main()
 5 {
 6     int n;
 7     cin>>n;
 8     while(1)
 9     {
10         if(n==0) break;
11         int f=1;
12         for(int i=1; i<=99999; i++)   //笔者在这循环了99999次  (其实可以从54321-98765)  无重复
13         {
14             if(i%n==0)
15             {
16                 int j=i/n;
17                 if(j>0&&j<=99999)
18                 {
19                     int flag=1;
20                     int A[20];   //数组A用来存放每个位置的数字
21                     A[1]=i%10;
22                     A[2]=i/10%10;
23                     A[3]=i/100%10;
24                     A[4]=i/1000%10;
25                     A[5]=i/10000;
26                     A[6]=j%10;
27                     A[7]=j/10%10;
28                     A[8]=j/100%10;
29                     A[9]=j/1000%10;
30                     A[10]=j/10000;
31                     for(int k=1; k<=10; k++)//笔者这使用了一个for循环来判断  也可以使用sort进行排序之后判断
32                     {
33                         for(int j=k+1; j<=10; j++)
34                         {
35                             if(A[k]==A[j])
36                             {
37                                 flag=0;
38 
39                             }
40                         }
41                     }
42                     if(flag)
43                     {
44                         f=0;
45                         if(A[10]==0)
46                         {
47                             cout<<i<<" / 0"<<j<<" = "<<n<<endl;
48                         }
49                         else
50                             cout<<i<<" / "<<j<<" = "<<n<<endl;
51 
52                     }
53                 }
54             }
55         }
56         if(f==1)
57         {
58             cout<<"There are no solutions for "<<n<<"."<<endl;
59         }
60         cin>>n;
61         if(n==0) break;
62         cout<<"
";
63     }
64 }
原文地址:https://www.cnblogs.com/Yinchen-One/p/8409693.html