数据结构—递归实现十进制装换为任意进制
代码:
#include <stdio.h>
#include <stdlib.h>
#include"stack.h"
stack Stack;
void toAnyDigit(int n, int d) {//十进制转化为d进制
if (n == 0) {//递归结束的条件
return;
}
int temp = n % d;
push(Stack, temp);
n = n / d;
toAnyDigit(n, d);//递归实现
}
int main() {
init(Stack);
int n, d;
printf("输入数字和要计算为的进制:");
scanf_s("%d%d", &n, &d);
toAnyDigit(n, d);//计算d进制
printStack(Stack);//遍历
system("pause");
return 0;
}
测试截图:
时间复杂度O(n),空间复杂度O(n)
彩蛋:可推广到任意进制转化为任意进制!