区间映射

geohash编码

http://www.nowcoder.com/questionTerminal/46bd43f043c54013a67816d0a2946506

这道题的测试用例答案有问题,是由整数除法的舍入误差造成的。
如果用二分法,每次都应该用浮点数。
例如: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);
    }
}
全部评论

相关推荐

头像
04-29 10:53
已编辑
东北大学 自动化类
点赞 评论 收藏
转发
4 收藏 评论
分享
牛客网
牛客企业服务