首页 > 代码库 > UVa 11636 (注意读题) Hello World!

UVa 11636 (注意读题) Hello World!

这道题巨坑啊,样例中以-1结束输入的,所以我就天真的以为测试数据也是以-1结束输入的

其实人家原文中说:

Input is terminated by a line containing a negative integer.

是以负数结束输入,囧rz!

我这种英语渣渣,怎么可能注意到这种错误

 

我还以为是算法的问题,就写了两份代码

 1 //#define LOCAL 2 #include <cstdio> 3  4 int a[20000]; 5  6 int main(void) 7 { 8     #ifdef LOCAL 9         freopen("11636in.txt", "r", stdin);10     #endif11 12     int n, kase = 0, j = 2;13     for(int i = 1; i <= 14; ++i)14     {15         while(j <= (1 << i))16         {17             a[j++] = i;18             if(j > 10000)    break;19         }20         if(j > 10000)    break;21     }22     while(scanf("%d", &n))23     {24         if(n < 0)    break;25         printf("Case %d: %d\n", ++kase, a[n]);26     }27     return 0;28 }
代码君一
 1 //#define LOCAL 2 #include <cstdio> 3  4 int main(void) 5 { 6     #ifdef LOCAL 7         freopen("11636in.txt", "r", stdin); 8     #endif 9 10     int n, kase = 0;11     while(scanf("%d", &n) == 1)12     {13         if(n < 0)    break;14         --n;15         int cnt = 0;16         while(n)    { n >>= 1; ++cnt; }17         printf("Case %d: %d\n", ++kase, cnt);18     }19     return 0;20 }
代码君二

 

UVa 11636 (注意读题) Hello World!