题目
从标准输入读入一个非负十进制整数,将其转换为二进制字符串形式并在控制台输出。
输入格式:一行输入一个非负整数 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