这道题的测试用例答案有问题,是由整数除法的舍入误差造成的。
如果用二分法,每次都应该用浮点数。
例如:5°的答案应该是100001,而不是100010

import java.util.*;
public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        double n = sc.nextDouble();
        n += 90;  //把区间[-90, 90]映射到[0, 180]
        n *= 64.0/180;  //把区间[0, 180]映射到[0, 64]
        int N = (int)Math.floor(n);  //把答案向下取整
        String r = Integer.toBinaryString(N);//把答案化成二进制
        while(r.length() < 6) r = "0" + r;//用0补齐位数
        System.out.println(r);
    }
}