已经AC了,这里的n进制的数不知道有多少位,所以我用了getchar(),修修改改了好几次,然后洛谷这里行结尾有'\r''\n',所以加了两个getchar(),但总感觉代码很别扭,AC代码贴在下面。 请教下,这个输入这里怎么写。
#include <bits/stdc++.h>
using namespace std;
#define f(i,a,b) for(int i=a;i<=b;i++)
#define g(i,a,b) for(int i=a;i>=b;i--)
int a[41];
int b[41];
int n,m,i,j,sum;
char ch;
int main(){
//输入
scanf("%d",&n);
getchar();
getchar();
ch=getchar();
i=40;
while(ch!=' '&&ch!='\n'&&ch!='\r') {
if(ch>='0'&&ch<='9') a[i--]=ch-'0';
if(ch>='A'&&ch<='F') a[i--]=ch-'A'+10;
ch=getchar();
}
scanf("%d",&m);
for(i++,j=0;i<=40;i++,j++) {
if(a[i]) sum+=a[i]*pow(n,j);
}
i=41;
while(sum) {
i--;
b[i]=sum%m;
sum/=m;
}
f(j,i,40) {
if(b[j]<=9) cout<<b[j];
else cout<<char(b[j]+55);
}
return 0;
}