题目:将非负十进制整数n转换成b进制(其中b=2~16)
- 递归模型
0 n=2,
ccc(int x,int n)={
ccc(x,n-1) n>2 - 代码
#include<stdio.h>
int translate(int x,int n)//计算数字的n进制
{
int p=1;
int result=0,remainder;
while(1)
{
remainder=x%n;
x/=n;
result+=remainder*p;
p*=10;
if(x<n)
{
result+=x*p;
break;
}
}
return result;
}
int ccc(int x,int n)//递归函数
{
if(n<2)//递归出口
return 0;
else
{
printf("转化为进制为%d\n",translate(x,n));
n--;
ccc(x,n-1);
}
}
//递归
void main()
{
int x;
int n=16;
printf("请输入一个非负十进制整数 \n");
scanf("%d",&x);
ccc(x,16);
}
//非递归
void main()
{
int p=1;
int result=0,remainder;
int x;
int n=16;
printf("请输入一个非负十进制整数 \n");
scanf("%d",&x);
for(;n>=0;n--)
{
printf("转化为进制为%d\n",translate(x,n));
}
}