题目

从标准输入读入一个非负十进制整数,将其转换为二进制字符串形式并在控制台输出。

输入格式:一行输入一个非负整数 n。

输出格式:输出对应的二进制字符序列,末尾换行。

数据范围与约定:0 ≤ n ≤ 2×109。

思路与算法

1. 除 2 取余逆序输出
反复执行 n % 2 取出当前二进制位存入字符数组,随后 n /= 2,循环直到 n 为 0。

2. 栈式反转与 0 的特判
因为最先得到的是低位(个位),输出时需要从高位到低位倒序打印。若输入本身为 0,需特判输出单个字符 0。

完整程序

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long n = sc.nextLong();

        // 转为二进制字符串
        System.out.println(Long.toBinaryString(n));
    }
}

运行示例

输入:

13

输出:

1101