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 }
浙公网安备 33010602011771号