题目:点击打开链接
用短除法就可以,但是应该注意当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); 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(" "); } return 0; }