hdu 2010 水仙花数

这个题目记得高中的NOI里面就有,看来经典的终归是经典那

如果对每个数对进行拆分可能会超时(尤其是比赛的时候),就想的竞赛中经典思想——以空间换时间,简单来说就是把三位数都给算一遍存储起来,是了就存1,不是存0,然后直接读入数据输出结果

也可能是见过,也可能是多想了一下,发现水仙花数只有四个(这个。。。),进一步优化程序。

  题目传送门

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int a[] = {153,370,371,407};
 5     int m,n,i,flag;
 6     while(scanf("%d%d",&m,&n)==2)
 7     {
 8         flag = 0;
 9         for(i=0;i<4;i++)
10         {
11             if(a[i]>=m&&a[i]<=n) 
12             {
13                 if(!flag) printf("%d",a[i]);   //flag两个作用
14                 else printf(" %d",a[i]);
15                 flag = 1;
16             }
17         }
18         if(flag) printf("\n");
19             else printf("no\n");
20     }
21     return 0;
22 }

 

posted @ 2013-05-10 09:28  飞向梦  阅读(213)  评论(0编辑  收藏  举报