这个程序仅仅是由十进制转换为其他进制的过程,其转换的规则如下图所示。
我使用的思路:首先在除基的过程中用一个数组保存余数,然后在输出进制转换结果的时候倒序输出,并且在输出前判断余数是否大于10,如果大于10则要转化为字母。
/*
【问题描述】输入一个十进制整数,将其转换成N进制数(1<N<=16)
【输入形式】一个十进制数 整数N
【输出形式】数字或字母由 (0-9,A,B,C,D,E,F)
【样例输入】300 16
【样例输出】12C
【样例输入】100 2
【样例输出】1100100
*/
#include <stdio.h>
#include <stdlib.h> void change(int n,int m)
{
int a,str[],i;
for (i=;n!=;i++)
{
str[i]=n%m;
n=n/m;
}
for (;i>;i--)
{
switch (str[i-])
{
case :printf("A");break;
case :printf("B");break;
case :printf("C");break;
case :printf("D");break;
case :printf("E");break;
case :printf("F");break;
default:printf("%d",str[i-]);break;
}
}
}
int main()
{
int m,n,str[];
while ((scanf("%d%d",&n,&m)!=EOF))
change(n,m);
return ;
}