记录编号 30097 评测结果 AAAAAAAAAA
题目名称 [NOIP 2000]进制转换 最终得分 100
用户昵称 GravatarTruth.Cirno 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2011-10-27 17:53:18 内存使用 0.29 MiB
显示代码纯文本
#include <cstdio>
using namespace std;

int main(void)
{
	freopen("fjz.in","r",stdin);
	freopen("fjz.out","w",stdout);
	const char NUMLIST[20]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J'};
	int i,num,bas,temp,a[20],top;
	while (scanf("%d %d",&num,&bas)==2)
	{
		if (num==0)
		{
			printf("0=0(base %d)\n",bas);
			continue;
		}
		temp=num;
		top=0;
		while (num)
		{
			a[top]=num%bas;
			num/=bas;
			if (a[top]<0)
			{
				a[top]-=bas;
				num++;
			}
			top++;
		}
		printf("%d=",temp);
		for (i=top-1;i>=0;i--)
			printf("%c",NUMLIST[a[i]]);
		printf("(base %d)\n",bas);
		
	}
	fclose(stdin);
	fclose(stdout);
	return(0);
}