题解 | #小乐乐与进制转换#

小乐乐与进制转换

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.利用递归函数来逆序输出(递归栈)

全部评论

相关推荐

牛客48826091...:哥们胸肌挺好看
点赞 评论 收藏
分享
想玩飞盘的菠萝蜜在春...:上交✌🏻也拒?
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务