题解 | #牛牛的10类人#
牛牛的10类人
https://www.nowcoder.com/practice/232b7fc32fac4636819e31a7d7c960a3
#include <iostream> using namespace std; const int N=1e6; int b[N]; int cnt=0; // 如何求一个进制转换 void fun(int a) { while(a>0) { b[cnt++]=a%2; a=a/2; } } int fun1(int m) { int num=0; for(int i=0;i<cnt;i++) { if(b[i]==m) { num++; } } return num; } int main() { int n; cin>>n; for(int i=0;i<n;i++) { int a; cin>>a; cnt=0; fun(a); int cnt1=0,cnt2=0; cnt1 = fun1(0); cnt2 = fun1(1); if(cnt1%2==0&&cnt2%2==0) { cout<<"10"<<" "; } else if(cnt1%2==0) { cout<<"0"<<" "; } else if (cnt2%2==0) { cout<<"1"<<" "; } else { cout<<"100"<<" "; } } } // 64 位输出请用 printf("%lld")
1.如何写一个n进制转换
void fun(int a)
{
int b[N],cnt=0;
while(a>0)
{
b[cnt++]=a%n;
a/=n;
}
}