【hdu - 2568】ACM程序设计期末考试081230

前进

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 2223    Accepted Submission(s): 1788


Problem Description
轻松通过墓碑,进入古墓后,才发现里面别有洞天。
突然,Yifenfei发现自己周围是黑压压的一群蝙蝠,个个扇动翅膀正准备一起向他发起进攻!
形势十分危急!
好在此时的yifenfei已经不是以前那个经常被lemon抢走MM的菜鸟了!面对众多蝙蝠的嗜血狂攻,只见yifenfei使出轻灵的剑法,刷,刷,刷,瞬间搞定……
现已知yifenfei使用了2招(剑招A和剑招B):剑招A,一招能杀死一半的蝙蝠。但是如果当前的蝙蝠数为奇数,那么就必须先出一招剑招B杀死其中任意一个,使蝙蝠数为偶数,再出剑招A。
现在请问:杀死n只蝙蝠需要使出多少招剑招B?
 

 

Input
输入数据首先给出一个整数C,表示测试组数。
然后是C组数据,每组包含一个正整数n (n<2^31)。

 

 

Output
对应每组数据,请输出一个整数,表示yifenfei使用的剑招B的数目,每组输出占一行。
 

 

Sample Input
2 1 5
 

 

Sample Output
1 2
 

 

Author
yifenfei
 

 

Source
 

 

Recommend
yifenfei
 
 
 
 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int t;
 7     cin >> t;
 8     while( t-- )
 9     {
10         int n;
11         cin >> n;
12         int count = 0;
13         while( n != 0 )
14         {
15             if( n % 2 == 1 )
16             {
17                 count++;
18                 n--;
19             }
20             else
21             {
22                 n = n / 2;
23             }
24         }
25         
26         cout << count << endl;
27         
28     }
29     return 0;
30 }
31 //end
32 //ism

 

posted @ 2012-07-22 20:35  ismdeep  阅读(419)  评论(0编辑  收藏  举报