递归将十进制转换为八进制c语言
时间: 2023-12-27 20:05:04 浏览: 29
以下是C语言中使用递归算法将十进制数转换为八进制数的代码实现:
```c
#include <stdio.h>
// 递归函数,将十进制数转换为八进制数,并返回转换后的结果
int decimalToOctal(int decimalNum) {
if (decimalNum == 0) {
// 边界情况:十进制数为0
return 0; // 返回八进制数为0
} else {
return (decimalNum % 8) + 10 * decimalToOctal(decimalNum / 8); // 递归调用,将十进制数转换为八进制数
}
}
int main() {
int decimalNum;
printf("请输入一个十进制数:");
scanf("%d", &decimalNum);
printf("该数的八进制表示为:%d\n", decimalToOctal(decimalNum));
return 0;
}
```
用户需要输入一个十进制数,程序将使用递归算法将其转换为八进制数并输出。递归函数`decimalToOctal`的实现中,当十进制数为0时,返回八进制数为0;否则,将十进制数对8取余数并加上10乘以将十进制数除以8的结果,然后递归调用函数,直到十进制数为0为止。
相关问题
c语言递归十进制转换二进制
下面是使用递归实现十进制转换为二进制的C语言代码:
```c
#include <stdio.h>
void decimalToBinary(int decimalNum){
if(decimalNum == 0){
return;
}
decimalToBinary(decimalNum / 2);
printf("%d", decimalNum % 2);
}
int main(){
int decimalNum = 23;
printf("%d in binary is: ", decimalNum);
decimalToBinary(decimalNum);
printf("\n");
return 0;
}
```
在这个代码中,我们定义了一个函数 `decimalToBinary`,它接受一个参数:需要转换的十进制数 `decimalNum`。
在函数中,我们首先计算出 `decimalNum` 除以2的商和余数,然后递归调用 `decimalToBinary` 函数,并将商作为参数传入。递归调用会一直进行,直到 `decimalNum` 等于0为止。
当 `decimalToBinary` 函数递归返回时,我们输出余数。
在 `main` 函数中,我们定义了需要转换的十进制数,并调用 `decimalToBinary` 函数进行转换。最后,我们输出转换后的二进制数。
c语言递归十进制转换
下面是使用递归实现十进制转换为其他进制的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` 函数进行转换。