UVA

题意: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 }
原文地址:https://www.cnblogs.com/Railgun000/p/10401067.html