NOJ1012 进制转换

原理其实是先把数换算成该进制下的几或十几,再用字母输出。

#include<stdio.h>
int main()
{
    long n;
    int a[1000],b,i,j,r;
    int times;
    scanf("%d",&times);
    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个想法

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注