知识点:1、十进制转换成其他进制,需要用到辗转相除法.
例如十进制24转换成二进制:11000
2、得到的二进制结果是最后的余数往上累积,这里我们得用到数组,先用数组储存这些余数,再将储存的数按照我们想要的方式输出。
关键步骤:
第一步:写出辗转相除的式子,求出其所有余数
a[i]=x%r;
x/=r;//辗转相除最常用式子
第二步:将余数储存在数组里
int i=0,a[50];
while(x!=0)
{
a[i]=x%r;//这里可以直接写a[i++];后续就不用写i++
x/=r;
i++;
}
第三步:将储存在数组里的数逆序输出
while(i>=0)//i=0后结束
{
printf("%d",a[i--]);//逆序输出
}
第四步:组合
#include<stdio.h>
int change(int x,int r)
{
int i=0,a[50];
while(x!=0)
{
a[i++]=x%r;//从a[1]开始算
x/=r;
}
i--;//减去1,让其从a[0]开始算
while(i>=0)
{
printf("%d",a[i--]);
}
return a[i];//这里返回什么都可以,输出在上。
}
void main()
{
int x,r;
printf("请输入x,r的值:");
scanf("%d %d",&x,&r);
change(x,r);
}