原理其实是先把数换算成该进制下的几或十几,再用字母输出。
#include<stdio.h> int main() { long n; int a[1000],b,i,j,r; int times; scanf("%d",×); while (times--) { scanf("%ld%d",&n,&r); i=0; if(n<0){n=-n;printf("-");} if(n==0) printf("0"); while(n>0) { b=n%r; a[i++]=b; n=n/r; } i=i-1; for(j=i;j>=0;j--) { switch(a[j]) { case 10:printf("A");break; case 11:printf("B");break; case 12:printf("C");break; case 13:printf("D");break; case 14:printf("E");break; case 15:printf("F");break; default :printf("%d",a[j]); } } printf("\n"); } return 0; }
《NOJ1012 进制转换》有1个想法