c语言递归法求进制转换
时间: 2024-09-19 15:09:37 浏览: 31
纯C语言:递归二进制转十进制源码分享
在C语言中,递归法可以用于将十进制数转换为其他进制数,比如常见的二进制、八进制或十六进制。递归的基本思想是将大问题分解成更小的子问题,直到问题简化到可以直接求解的基础情况。
下面是一个简单的例子,展示如何使用递归将一个十进制数转换为二进制:
```c
#include <stdio.h>
#include <string.h>
// 函数声明
void decToBinary(int n, char binary[50]);
int main() {
int decimal = 42;
char binary[50];
// 调用函数并打印结果
decToBinary(decimal, binary);
printf("十进制 %d 转换成二进制是 %s\n", decimal, binary);
return 0;
}
// 递归函数 decToBinary
void decToBinary(int n, char binary[50]) {
if (n == 0) { // 当数字变为0,结束递归
binary[0] = '\0'; // 终止字符串
return;
}
binary[strlen(binary)] = '0' + n % 2; // 将当前位添加到结果
decToBinary(n / 2, binary); // 递归处理下一位
}
```
在这个例子中,`decToBinary`函数会一直调用自身,每次减半输入的十进制数,并记录每一位的二进制值。当十进制数变为0时,递归停止,最终得到的`binary`数组就是转换后的二进制表示。
阅读全文