2000 NOIP进制转换

求代码

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;
}