hdu2099

这是一道很水的题,谁看到谁都会有思路,其实我也有但是由于第二个一直不知道怎么清楚,就是不会被完全整除的情况下,怎么就让他永远减下去,然后超过100,就退出,一直没找到那个临界点,因此看了别人的思路其实别人的思路也蛮好理解,也蛮容易想的,因为就是一个2位数嘛,很简单一个一个试吧,这么简单,能完全除尽,就输出,除不尽就不输出,很简单,但是很浪费时间,当然了,其实自己也没有想到,就想到了,自己刚才想的,到那时一直不知道怎么写可以让他把他运行出来,哎,还有就是,这道题的有两个细节,

第一个是怎么输出00,其实自己不会,看了别人的才知道怎么输出的,%02d,就是最少两位,不满则添0,很好地方法

第二个,就是输出的时候,最后一个的末尾是没有空格的,而题目中用了很简单的三则运算符,达到了目的,很简单,很方便,但不容易想,记住了

上面是自己的思路,那点一直不知道怎么做 

 1 #include <stdio.h>
 2 #include <string.h>
 3 /*
 4 int main()
 5 {
 6     int a,b,i,s;
 7     while(scanf("%d %d",&a,&b) != EOF)
 8     {
 9         s = 0;
10         i = 0;
11         if(a == 0 && b == 0)
12         break;
13         if(a % b == 0)
14         {
15             for(i = 0;i*b < 100; i++)
16              printf(i==0 ? "%02d":" %02d",i*b);
17 
18         }
19         else
20         {
21             s =(a  * 100) % b;
22             while(s > 0 && s< 100){
23                  s-=b;
24                 printf(i == 0 ?"%02d":" %02d",-s);
25                 i--;
26             }
27 
28         }
29         printf("\n");
30 
31     }
32     return 0;
33 }
34 */
35 
36 int main()
37 {
38     int a,b,f,i;
39     while(scanf("%d %d",&a,&b)!= EOF && a != 0|| b != 0)
40     {
41         f = 0;
42         for(i = 0;i< 100;i++)
43         {
44             if(( a * 100 + i ) % b == 0)
45                printf(f ++ ?" %02d":"%02d",i);
46 
47         }
48         printf("\n");
49     }
50 
51         return 0;

52 } 

posted on 2013-02-11 00:08  yelcoved  阅读(329)  评论(0)    收藏  举报