您的位置:首页 > 编程语言 > C语言/C++

HDU 5272 Dylans loves numbers

2015-06-21 11:05 344 查看


Dylans loves numbers

 
 Accepts: 405
 
 Submissions: 831

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

问题描述
Dylans是谁?你可以在 UOJ 和 Codeforces上看到他。
在BestCoder里,他有另外一个ID:s1451900。
今天的题目都和他有关哦。
Dylans得到了一个数N。他想知道N的二进制中有几组1。
如果两个1之间有若干个(至少一个)0 “挡住”,他们就不是同一组的,
否则他们就是同一组的。

输入描述
第一行读入一个数T表示数据组数。
接下来T行,每行一个数N。
0≤N≤1018,T≤1000

输出描述
对于每组数据,输出一个数表示答案。

输入样例
1
5

输出样例
2


端午节bc题目,水

flag妙用

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