Uva 11636 Hello World!

题意:给定数字n,问赋值粘贴几次,能够有n个"printf("hello world!\n")"

坑点:初始有一个ans=1,可复制1~ans个

题解:ans*2<n的话则全部复制,然后剩下的再复制一次

 

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6         int n,cas=1;
 7         while(~scanf("%d",&n))
 8         {
 9                 int sum = 1,ans=0;
10                 if(n < 0) break;
11                 while(sum*2<n)
12                 {
13                         sum <<= 1;
14                         ans++;
15                 }
16                 if(n-sum!=0) ans++;
17                 printf("Case %d: %d\n",cas++,ans);
18         }
19 }

 

posted on 2015-11-23 21:56  小松song  阅读(97)  评论(0)    收藏  举报

导航