码迷,mamicode.com
首页 > 其他好文 > 详细

NYOJ 864 统计

时间:2014-05-01 18:35:17      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:nyoj 864 统计

统计

时间限制:1000 ms  |  内存限制:65535 KB
难度:1
描述
给出一个十进制正整数n,将它化为32位的二进制(32-bit binary)
  求出它低位上第一次出现1的位置
  求出它高位连续0的个数
  求出它低位连续0的个数
  求出它所有1的个数

输入
第一行一个正整数T表示测试数据的组数
接下来T行,每行一个正整数表示n (1 <= n <= 2^32 - 1)
输出
一行四个整数,按照题目描述依次输出,参照output
样例输入
3
1
100
123456
样例输出
1 31 0 1
3 25 2 3
7 15 6 6
AC码:
#include<stdio.h>
int main()
{
	long long T,n,num[32],i,count[4];
	scanf("%lld",&T);
	while(T--)
	{
		scanf("%lld",&n);
		for(i=0;i<32;i++)
			num[i]=0;
		for(i=0;i<4;i++)
			count[i]=0;
		i=0;
		while(n!=0)
		{
			num[i]=n%2;
			count[3]=count[3]+num[i];
			if(count[3]==1&&num[i]==1)
				count[0]=i+1;
			if(count[3]==0)
				count[2]++;
			n=n/2;
			i++;
		}
		count[1]=32-i;
		for(i=0;i<4;i++)
			printf("%lld ",count[i]);
		printf("\n");
	}
	return 0;
}


NYOJ 864 统计,码迷,mamicode.com

NYOJ 864 统计

标签:nyoj 864 统计

原文地址:http://blog.csdn.net/u012804490/article/details/24778841

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!