满意答案
www88188
2014.01.08
采纳率:40% 等级:12
已帮助:13434人
#include
#include
int poll(int a,int b)
{
int i,s=1;
for(i=1;i<=b;i++)
s=s*a;
return s;
}//自定义的求幂函数
int main()
{
int i,j,k,l,n,m;
int t;
char a[100];
int poll(int a,int b);
while(scanf("%d %s",&n,a)!=EOF)//输入
{
t=0;
l=strlen(a)-1;
printf("%d\n%s\n",n,a);//将输入输出
for(i=0;a[i]!='\0';i++)//转换过程
{
if(n!=16)
{
t=t+(a[i]-'0')*poll(n,l);
l--;
}
else
{
if(a[i]>='A'&&a[i]<='f')
t=t+(a[i]-'A'+10)*poll(n,l);
else
t=t+(a[i]-'0')*poll(n,l);
l--;
}
}
printf("%d\n",t);//所求的结果
}
}
这个代码没有问题,不懂的话,在问我吧
其中n就是2或8或16,也可以是别的数,而a[]就是与n相对应的进制数
下面是输入输出样例
2 10101010110
2
10101010110
1366
8 777777777
8
777777777
134217727
16 F08F89FAD
16
F08F89FAD
150511533
00分享举报