题意:1.输入一个数,将其转换为二进制.2.记录二进制中出现1的次数.
注意:转换二进制后直接输出,不能转换为十进制后输出
1 #include<iostream> 2 #include<cstdio> 3 #define ll long long 4 using namespace std; 5 const int amn=1e5+5; 6 ll ans =0,aa; 7 int an[amn]; 8 void s(ll a) 9 { 10 ans=0; 11 int cnt=0; 12 while(a!=0) 13 { 14 if(a%2) 15 { 16 an[cnt++]=1; 17 ans++; 18 } 19 else an[cnt++]=0; 20 a/=2; 21 } 22 aa=cnt-1; 23 } 24 int main() 25 { 26 ll n; 27 while(cin>>n) 28 { 29 if(n==0)break; 30 s(n); 31 printf("The parity of "); 32 for(int i=aa; i>=0; i--) 33 { 34 cout<<an[i];///进制要直接打出来,不能转换成10进制输出 35 } 36 printf(" is %lld (mod 2). ",ans); 37 } 38 }