NYOJ864 统计

时间:2014-03-09 00:38:40   收藏:0   阅读:510

原题链接

这个OJ的int不是32位的,所以坑了不少人,换成unsigned long long就行了。

#include <stdio.h>

int main(){
	unsigned long long t, n, a, b, d, i, j, oka;
	scanf("%lld", &t);
	while(t--){
		scanf("%lld", &n);
		oka = b = d = 0;
		a = i = 1;
		for(j = 1; j <= 32; ++j){
			if(n & i){
				if(!oka) oka = 1;
				++d;
				b = 0;
			}else{
				if(!oka) ++a; //c == a - 1;
				++b;
			}
			i <<= 1;
		}
		printf("%lld %lld %lld %lld\n", a, b, a - 1, d);		
	}
	return 0;
}

点击打开链接

NYOJ864 统计,布布扣,bubuko.com

原文:http://blog.csdn.net/chang_mu/article/details/20802721

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!