题目:点击打开链接
用短除法就可以,但是应该注意当n=0 或 n=1的情况,这种情况直接输出即可。
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
int n, r, cnt;
int f[200];
while(~scanf("%d%d", &n, &r))
{
if(n==0 || n==1)
{
printf("%d\n", n);
continue;
}
cnt = 0;
memset(f, 0, sizeof(f));
if(n<0)
{
printf("-");
n = -n;
}
while(n!=0){
int j = n%r;
f[cnt++] = j;
n = n/r;
}
for(int i=cnt-1; i>=0; i--)
{
if(f[i]>=10)
printf("%c", 'A'+f[i]-10);
else
printf("%d", f[i]);
}
printf("\n");
}
return 0;
}