入门经典 第七章 7.7.1 除法

这道题目还是卡了很久,原因是要考虑0是不是出现过,要标记。

 1 #include <stdio.h>
 2 #include <ctype.h>
 3 #include <string.h>
 4 #include <stdlib.h>
 5 #include <math.h>
 6 
 7 void f(int a[], int n)
 8 {
 9     a[n%10] = 1;
10     n/=10;
11     while (n)
12     {
13         a[n%10] = 1;
14         n/=10;
15     }
16     return;
17 }
18 
19 int main(void)
20 {
21     int n, i, a[11], k, temp;
22     freopen("in", "r", stdin);
23     while (~scanf("%d", &n))
24     {
25         for (i = 100; i < 50000; ++i)
26         {
27             k = i * n;
28             memset(a, 0, sizeof(a));
29             temp = k;
30             if (temp/100000!=0) continue;
31             f(a, temp);
32             f(a, i);
33             a[temp/10000] = a[i/10000] = 1;
34             int mrk=1;
35             for (int s = 0; s < 10; ++s)
36             {
37                 if(!a[s])
38                 {mrk = 0; break;}
39             }
40             if (mrk == 1) printf("%05d / %05d = %d\n", k, i, n);
41         }
42         
43     }
44 
45     return 0;
46 }

标记的时候要认真考虑特殊情况。

posted on 2012-12-14 19:21  aries__liu  阅读(175)  评论(0编辑  收藏  举报