用c写出十进制转换成任意2~9进制数的算法
时间: 2024-03-11 20:51:26 浏览: 77
以下是一个将十进制数转换为任意 2~9 进制数的 C 语言代码:
```c
#include <stdio.h>
void decimal_to_n(int num, int base) {
int remainder;
if (num == 0) { // 如果 num 为 0,直接输出 0
printf("0");
return;
}
if (num < 0) { // 如果 num 为负数,先输出负号,再将 num 取反
printf("-");
num = -num;
}
int arr[32]; // 用数组存储每一位的余数
int i = 0;
while (num > 0) {
remainder = num % base; // 求余数
arr[i] = remainder; // 将余数存入数组
num /= base; // 将 num 除以 base
i++;
}
for (int j = i - 1; j >= 0; j--) { // 从高位到低位输出每个余数
printf("%d", arr[j]);
}
}
int main() {
int num, base;
printf("请输入一个十进制数:");
scanf("%d", &num);
printf("请输入要转换成的进制数(2~9):");
scanf("%d", &base);
printf("%d 转换为 %d 进制的结果为:", num, base);
decimal_to_n(num, base);
printf("\n");
return 0;
}
```
该算法的时间复杂度为 O(logn),空间复杂度为 O(logn)。
阅读全文