码迷,mamicode.com
首页 > 其他好文 > 详细

uva725

时间:2017-11-02 11:11:29      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:solution   二次   size   stdout   bsp   思路   include   ret   col   

帮学弟改的一段代码,我觉得学弟思路和我做这题的思路不一样,值得看一看...虽然是个水题...

注意点:这个题目我一开始写的时候PE了四次,后来仔细修改,发现,这个题目对我们输出空格的检测异常严格!!!

第一点:题目要求每个样例输出一个空行,按照我们正常的思路,在代码的最后写上换行符号就可以了,但是这样做的后果就是在你输出最后一个样例的时候,你会多出一个空行,这就是导致pe的原因....

其他的话没什么难点,这份代码和我的不同的是我是用sprintf进行的字符串转换,他是用的数组下标来进行的检测,思路有所不同!

 1 #include<stdio.h>
 2 #include<string.h>
 3 int a[15];
 4 int n[85];
 5 int main()
 6 {
 7     int N,c=0;
 8     int cases = 0;
 9     //freopen("/Users/luckybird/Desktop/examples/data.rtf","w",stdout);
10     while(~scanf("%d",&N)){
11         c = 0;//你这个c没有初始化的话(初始化没有放在循环里面,第一次是0,第二次就是1,第三次就是2...当然就会让你的代码陷入死循环)
12         if (N != 0) n[++c] = N;
13         if (N == 0) break;
14         if( cases != 0)
15             printf("\n");
16         cases++;
17         for (int p = 1; p <= c; p++) {
18             int ff = 0;
19             if (p != 1) printf("\n");//p == 2的时候直接跳出了循环,不是很清楚你这个表达是干嘛的...
20             for (int i = 12345; i <= 98765; i++) {
21                 memset(a, 0, sizeof(a));
22                 int f = 1;
23                 int j = i / n[p];
24                 if (i % j != 0) continue;
25                 a[i / 10000] += 1;
26                 a[i / 1000 % 10] += 1;
27                 a[i / 100 % 10] += 1;
28                 a[i / 10 % 10] += 1;
29                 a[i % 10] += 1;
30                 a[j / 10000] += 1;
31                 a[j / 1000 % 10] += 1;
32                 a[j / 100 % 10] += 1;
33                 a[j / 10 % 10] += 1;
34                 a[j % 10] += 1;
35                 for (int k = 0; k <= 9; k++)
36                     if (a[k] > 1) f = 0;
37                 if (f) {
38                     if (ff != 0) printf("\n");//这个是为了每行之间输出换行
39                     printf("%d / ", i);
40                     if (j < 10000) printf("0");
41                     printf("%d = %d", j, n[p]);
42                     ff = 1;
43                 }
44             }
45             if(ff) printf("\n");
46 
47             if (!ff) printf("There are no solutions for %d.\n", n[p]);
48             //if (p != c) printf("\n");//这p永远等于c吧....
49 
50         }
51     }
52     return 0;
53 }

 

uva725

标签:solution   二次   size   stdout   bsp   思路   include   ret   col   

原文地址:http://www.cnblogs.com/fzfn5049/p/7770712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!