c语言十进制转二进制递归算法
时间: 2023-11-26 19:01:47 浏览: 180
lianzhan.rar_使用栈求
C语言实现十进制转二进制的递归算法如下:
```c
#include <stdio.h>
void decimalToBinary(int decimal) {
if (decimal == 0) {
return;
}
decimalToBinary(decimal / 2);
printf("%d", decimal % 2);
}
int main() {
int decimal;
printf("请输入一个十进制数:");
scanf("%d", &decimal);
printf("%d的二进制表示为:", decimal);
decimalToBinary(decimal);
printf("\n");
return 0;
}
```
此递归算法的思路是不断地将十进制数除以2,直到商为0停止递归。在每一次递归中,先递归调用除以2的商,然后输出余数。递归终止条件是当十进制数等于0时,即所有位数都被转化为二进制。
首先,在`main`函数中,通过`scanf`函数获取用户输入的十进制数,保存在`decimal`变量中。
然后,调用`decimalToBinary`函数,将`decimal`作为参数传递进去。
在`decimalToBinary`函数中,首先判断`decimal`是否为0,如果是,则直接返回。否则,继续递归调用`decimalToBinary`函数,参数为`decimal`除以2的商。然后,输出`decimal`对2取余的结果,即该位的二进制数值。
最后,在`main`函数中,输出转化完成的二进制数。
例如,输入十进制数10,经过递归转换后输出的二进制数为1010。
阅读全文