首页 > 其他 > 详细

【HDOJ】1271 整数对

时间:2014-09-15 14:12:49      阅读:184      评论:0      收藏:0      [点我收藏+]
 1 #include <cstdio>
 2 #include <cstring>
 3 #include <cstdlib>
 4 
 5 #define MAXN 105
 6 int buf[MAXN];
 7 
 8 int comp(const void *a, const void *b) {
 9     return *(int *)a - *(int *)b;
10 }
11 
12 int main() {
13     int m, n;
14     int i, j, k, tmp;
15     int a, b, c;
16 
17     while (scanf("%d", &n)!=EOF && n) {
18         k = 1;
19         for (m=0,i=0; i<10; ++i) {
20             j = n%k;
21             if ((j&1) == 0) {
22                 c = j>>1;
23                 // 11a+b = tmp;
24                 tmp = n/k;
25                 for (b=0; b<10; ++b) {
26                     if ((tmp||b) && (tmp-b)%11 == 0) {
27                         a = (tmp-b)/11;
28                         buf[m++] = n-a*k-c;;
29                     }
30                 }
31             }
32             if (((j+k)&1) == 0) {
33                 c = (j+k)>>1;
34                 // 11a+b+1 = tmp
35                 tmp = n/k-1;
36                 for (b=0; b<10; ++b) {
37                     if ((tmp||b) && (tmp-b)%11 == 0) {
38                         a = (tmp-b)/11;
39                         buf[m++] = n-a*k-c;
40                     }
41                 }
42             }
43             k *= 10;
44         }
45         if (m == 0) {
46             printf("No solution.\n");
47         } else {
48             qsort(buf, m, sizeof(int), comp);
49             printf("%d", buf[0]);
50             for (i=1; i<m; ++i) {
51                 if (buf[i] != buf[i-1])
52                     printf(" %d", buf[i]);
53             }
54             printf("\n");
55         }
56 #ifndef ONLINE_JUDGE
57         fflush(stdout);
58 #endif
59     }
60 
61     return 0;
62 }

 

【HDOJ】1271 整数对

原文:http://www.cnblogs.com/bombe1013/p/3972620.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!