记录编号 434330 评测结果 AAAAAAAAAA
题目名称 [NOIP 2000]进制转换 最终得分 100
用户昵称 Gravatar落痕 是否通过 通过
代码语言 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;
}