c语言递归十进制转换
时间: 2023-07-09 15:24:02 浏览: 87
下面是使用递归实现十进制转换为其他进制的C语言代码:
```c
#include <stdio.h>
void decimalToBase(int decimalNum, int base){
if(decimalNum == 0){
return;
}
int remainder = decimalNum % base;
decimalToBase(decimalNum / base, base);
if(remainder < 10){
printf("%d", remainder);
}else{
printf("%c", 'A' + remainder - 10);
}
}
int main(){
int decimalNum = 23;
int base = 2;
printf("%d in base %d is: ", decimalNum, base);
decimalToBase(decimalNum, base);
printf("\n");
return 0;
}
```
在这个代码中,我们定义了一个函数 `decimalToBase`,它接受两个参数:一个是需要转换的十进制数 `decimalNum`,另一个是目标进制 `base`。
在函数中,我们首先计算出 `decimalNum` 除以 `base` 的商和余数,然后递归调用 `decimalToBase` 函数,并将商作为参数传入。递归调用会一直进行,直到 `decimalNum` 等于0为止。
当 `decimalToBase` 函数递归返回时,我们输出余数。如果余数小于10,则直接输出数字。否则,我们将余数转换为大写字母并输出。
在 `main` 函数中,我们定义了需要转换的十进制数和目标进制,并调用 `decimalToBase` 函数进行转换。
阅读全文