记录编号 |
434330 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2000]进制转换 |
最终得分 |
100 |
用户昵称 |
落痕 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.018 s |
提交时间 |
2017-08-07 18:34:48 |
内存使用 |
4.13 MiB |
显示代码纯文本
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int n,r,aa,bb,cc;
int q[1000000],ql,nn;
char bs(int x)
{
if(x==10) return 'A';
if(x==11) return 'B';
if(x==12) return 'C';
if(x==13) return 'D';
if(x==14) return 'E';
if(x==15) return 'F';
if(x==16) return 'G';
if(x==17) return 'H';
if(x==18) return 'I';
if(x==19) return 'J';
if(x==20) return 'K';
}
void work()
{
memset(q,0,sizeof(q));
ql=0;
while(n!=0)
{
aa=n%r;
bb=n/r;
if(aa<0)
{
aa=aa-r;
bb++;
}
n=bb;
ql++;
q[ql]=aa;
}
cout<<nn<<"=";
for(int i=ql;i>=1;i--)
{
if(q[i]<10) cout<<q[i];
else cout<<bs(q[i]);
}
cout<<"(base"<<r<<")";
}
int main()
{
freopen("fjz.in","r",stdin);
freopen("fjz.out","w",stdout);
while(cin>>n>>r)
{
nn=n;
if(n==0)
{
cout<<"0=0(base"<<r<<")";
cout<<endl;
continue;
}
work();
}
return 0;
}