题解 | #小乐乐与进制转换#
小乐乐与进制转换
https://www.nowcoder.com/practice/242eafef2a704c0ca130d563b7b3ee2d
#include <stdio.h> void pushStack(int x, int* arr, int* Pointer) { arr[*Pointer + 1] = x; (*Pointer)++; } int popStack(int* arr, int* Pointer) { (*Pointer)--; return arr[*Pointer + 1]; } int main() { int n; scanf("%d\n", &n); int stack[20]; int Pointer = -1; while (n != 0) { pushStack(n % 6, stack, &Pointer); n /= 6; } while (Pointer >= 0) { printf("%d", popStack(stack, &Pointer)); } }
十进制转换为任意进制,可以用任意进制,可以用短除法,然后逆序输出结果。
把一组数逆序输出,尤其是在不知道有多少个数时,可以采用数组存储,并记录长度,然后从后往前输出。
更好的思路:
1.利用栈来逆序输出
2.利用递归函数来逆序输出(递归栈)