http://www.cnblogs.com/yylogo/archive/2011/08/04/NOIP-2000-2.html
http://blog.csdn.net/batman_/article/details/50637660
题一 进制转换 (18分)
问题描述
我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式。例如:123可表示为 1*102+2*101+3*100这样的形式。
与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的(值-1)为指......
答案就在这里:NOIP2000 进制转换
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?
谢谢!!!!!
#include<bits/stdc++.h>
using namespace std;
char num[10]={'A','B','C','D','E','F','G','H','I','J'};
int n,a,ans[300],tot;
int main()
{
int i;
while(~scanf("%d",&n))
{
scanf("%d",&a);tot=0;
while(n)
{
ans[++tot]=n%a;
n/=a;
if(ans[tot]<0) ans[tot]-=a,n++;
}
for(i=tot;i>=1;i--)
{
if(ans[i]<10) printf("%d",ans[i]);
else printf("%c",num[ans[i]-10]);
}
putchar('\n');
}
return 0;
}