比赛 20140713上午练习 评测结果 AAAAWWWWWW
题目名称 A类B类数 最终得分 40
用户昵称 Ra-xp 运行时间 0.990 s
代码语言 C++ 内存使用 0.31 MiB
提交时间 2014-07-13 10:19:18
显示代码纯文本
#include<iostream>
#include<fstream>
#include<vector>
#include<string>
#define MAXN 1000
using namespace std;
/*
	注意:全加括号,以防算错!
	按位与        &     3     全一则一,否则为零
	按位或        |     3	  有一则一,否则为零
	按位取反      ~     1     不同则一,相同则零
	按位异或      ^     3     
	左移位        <<    2	  等价于x*2的k次幂
	右移位        >>    2     等价于x/2的k次幂(取整)
	
	freopen("","r",stdin);
	freopen("","w",stdout);
	
	位运算需用unsighed short(int)无符号的短整型(整型)。*/

int main()
{
	freopen("abnum.in","r",stdin);
	freopen("abnum.out","w",stdout);
	int i, j, n, k, l, m, a=0, b=0;
	unsigned short work;
	cin>>n;
	for(i=1,k=0,l=0,m=0;i<=n;i++)
	{
		work=i;
		for(j=0;work!=0;j++)
		{
			work=work&(work-1);
		}
		k=j;
		work=i;
		for(j=0;work!=0;j++)
		{
			work=work>>1;
		}
		l=j;
		if(l-k<k)
		{
			a++;
		}
		else b++;
	}
	
	cout<<a<<' '<<b<<endl;
	
	
	return 0;
}