← 返回题目列表
UNSW COMP2521 · 简单

栈 · 十进制转二进制

栈 · 用栈把十进制转二进制(21T3 Q4 同款)

读入一个非负整数 n,用栈把它转成二进制并打印。

做法:不断取 n % 2 得到一个二进制位、push 进栈,再 n /= 2,直到 n == 0;最后依次 pop 打印。

请补全 printBinary。

为什么用栈:n % 2 是从低位到高位依次产生的,但二进制要从高位到低位写。push 进栈再 pop 出来,顺序正好被翻转回正确的样子——这正是栈「倒序」特性的经典应用。 易错点:n == 0 要特判直接输出 0(否则循环一次都不进,什么都不打印)。

输入

  • 一行:非负整数 n(0 ≤ n ≤ 2000000000)。

输出

  • 一行:n 的二进制表示(无前导零;n=0 输出 0)。

示例:输入 13 → 输出 1101。