程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> NYOJ864 統計

NYOJ864 統計

編輯:C++入門知識

原題鏈接

這個OJ的int不是32位的,所以坑了不少人,換成unsigned long long就行了。

#include 

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;
}

點擊打開鏈接

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved