HDU-前进(水题)

向右看齐 2022-05-26 04:22 289阅读 0赞

前进

#

Problem Description

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

Input

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

Output

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

Sample Input

2

1

5

Sample Output

1

2

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. int main()
  4. {
  5. int t,sum,n;
  6. scanf("%d",&t);
  7. while(t--)
  8. {
  9. scanf("%d",&n);
  10. sum=0;
  11. while(n)
  12. {
  13. if(n%2!=0)
  14. {
  15. sum++;
  16. n=n/2;
  17. }
  18. else
  19. {
  20. n=n/2;
  21. }
  22. }
  23. printf("%d\n",sum);
  24. }
  25. return 0;
  26. }

发表评论

表情:
评论列表 (有 0 条评论,289人围观)

还没有评论,来说两句吧...

相关阅读

    相关 HDU 1200()

    题意:编码方式:把字符串一列一列的排下来,一共排成n列。则一行一行读下来(奇数行从前往后读,偶数行从后往前读),得到的字符串为编码加密后的字符串。 给一个数n,和一个字符串,