您的位置:首页 > 其它

hdoj 2568 前进

2015-03-11 22:10 183 查看

前进

Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 4795 Accepted Submission(s): 3742



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



水题:

#include<stdio.h>
void find(int x)
{
    int i;
    int sum=0;
    while(x)
    {
        if(x&1)
        {
            sum++;
            x-=1;
        }
        else
        x/=2;
    }
    printf("%d\n",sum);
} 
int main()
{
    int t,i,n;
    scanf("%d",&t);
    while(t--)
    {
        scanf("%d",&n);
        find(n);
    }
    return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: