C语言利用递归算法,输出一个函数,输入一个十进制数x,转化为r进制数
时间: 2024-01-25 12:04:16 浏览: 86
纯C语言:递归二进制转十进制源码分享
5星 · 资源好评率100%
以下是C语言实现递归算法输出一个十进制数x转化为r进制数的函数:
```c
#include <stdio.h>
void convert(int x, int r) {
if (x == 0) {
return;
} else {
convert(x / r, r); // 递归进行除法操作
int remainder = x % r;
if (remainder < 10) {
printf("%d", remainder);
} else {
printf("%c", 'A' + remainder - 10);
}
}
}
int main() {
int x, r;
printf("Enter a decimal number: ");
scanf("%d", &x);
printf("Enter the radix: ");
scanf("%d", &r);
printf("The result is: ");
convert(x, r);
printf("\n");
return 0;
}
```
在该函数中,参数x是要转换的十进制数,r是要转换的进制数。在函数内部,首先递归调用自身进行除法操作,直到x等于0为止。然后,取出x除以r的余数,并输出对应的数字或字母(当余数大于等于10时)。
例如,将十进制数20转换为二进制数,调用convert(20, 2),输出结果为10100。
阅读全文