二进制十进制转化
#include <bits/stdc++.h>
using namespace std;
const int NUM=10;
int z[40],num;
//p进制数x转化为十进制数y
//p0在循环中指数增长,1、p、p^2..
//y=a1*p(n-1)+a2*p(n-2)+...+an
int C_To_10(int p,int x){
int y=0,p0=1;
while(x!=0){
y+=(x%10)*p0;//每次取个位数字
x=x/10;//去掉x的个位
p0=p0*p;
}
return y;
}
//将十进制数y转化为q进制,结果存放在数组z
int C_To_2(int y,int q){
//int z[40];
num=0;
do{
z[num++]=y%q;
y/=q;
}while(y!=0);
return num;
}
int main()
{
int n,m,p;
//m进制数 值为n
while(cin>>n>>m){
memset(z,0,NUM);
if(m==2){
cout<<C_To_10(m,n)<<endl;
}
if(m==10){
C_To_2(n,2);
for(int i=num-1;i>=0;i--){
cout<<z[i];
}
cout<<endl;
}
}
return 0;
}