题解 | #小乐乐与进制转换#
小乐乐与进制转换
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.利用递归函数来逆序输出(递归栈)
