Parity

題目連結 UVa 10929

[think]

先換成二進位 再算出二進位有幾個1

solution:

#include<iostream>
using namespace std;
int main()
{
	int n;
	while(cin>>n and n!=0)
	{
		int bin[31]={0},cnt=0,i=-1,j;
		while(n!=0)
		{
			i++;
			if(n%2==0)
			{
				bin[i]=0;
				n/=2;
			}
			else
			{
				bin[i]=1;
				n-=1;
				n/=2;
			}
		}
		cout<<"The parity of ";
		for(j=i;j>=0;j--)
		{
			cnt+=bin[j];
            cout<<bin[j];
		}
		cout<<" is "<<cnt<<" (mod 2)."<<endl;
	}
}

tags: UVA

回目錄 學習筆記