TX2017秋招笔试题之geohash编码
来源:互联网 发布:nginx if 编辑:程序博客网 时间:2024/05/17 06:38
问题描述:
geohash编码:geohash常用于将二维的经纬度转换为字符串,分为两步:第一步是经纬度的二进制编码,第二步是base32转码。
此题考察纬度的二进制编码:算法对纬度[-90, 90]通过二分法进行无限逼近(取决于所需精度,本题精度为6)。
注意,本题进行二分法逼近过程中只采用向下取整来进行二分,针对二分中间值属于右区间。算法举例如下: 针对纬度为80进行二进制编码过程:
1) 区间[-90, 90]进行二分为[-90, 0),[0, 90],成为左右区间,可以确定80为右区间,标记为1;
2) 针对上一步的右区间[0, 90]进行二分为[0, 45),[45, 90],可以确定80是右区间,标记为1;
3) 针对[45, 90]进行二分为[45, 67),[67,90],可以确定80为右区间,标记为1;
4) 针对[67,90]进行二分为[67, 78),[78,90],可以确定80为右区间,标记为1;
5) 针对[78, 90]进行二分为[78, 84),[84, 90],可以确定80为左区间,标记为0;
6) 针对[78, 84)进行二分为[78, 81), [81, 84),可以确定80为左区间,标记为0;
输入描述:
输入包括一个整数n,(-90 ≤ n ≤ 90)
输出描述:
输出二进制编码
示例1
输入
80
输出
111100
————————————————————————————————————————————————————————————————————————————————————
求解思路:没啥说的,二分法,看清题,题目中精度要求为6,直接循环,不解释
代码实现:
#include<iostream>using namespace std;int BSerch(int n);int main(){ int N; do { cin>>N; BSerch(N); }while(N>90||N<=-90); return 0;}int BSerch(int n){ int m,left=-90,right=90; for(int i=0;i<6;i++) { m=(left+right)/2; if(n<m) { right=m; cout<<0; } else if(n>=m) { left=m; cout<<1; } } cout<<endl; return 0;}
阅读全文
0 0
- TX2017秋招笔试题之geohash编码
- TX2017秋招笔试题之geohash编码
- 腾讯2017秋招笔试编程题--geohash编码
- 腾讯2017秋招笔试[编程题] geohash编码
- 笔试题:geohash编码
- 腾讯2017秋招笔试编程题(四)----geohash编码
- 腾讯2017秋招笔试编程题:geohash [python]
- 百度2012校招笔试题之位数和编码
- 腾讯2017秋招笔试编程题--编码
- Tencent2017秋招笔试题--求编码的index
- 腾讯2017秋招笔试编程题_编码
- 腾讯2017秋招笔试编程题:编码 [python]
- 笔试之网易秋招
- geohash编码 (腾讯2017校招开发工程师试卷一)
- 2015秋招笔试题之程序设计题集锦
- 腾讯2017秋招笔试编程题之素数
- geohash编码
- geohash编码
- leetcode-11-Container With Most Water
- SpringView实现上拉加载,下拉刷新
- ICPC2017网络赛(沈阳)1008 transaction transaction transaction——树形DP
- QML 实现图片帧渐隐渐显轮播
- Java程序设计基础教程-第二章
- TX2017秋招笔试题之geohash编码
- C++封装、继承、多态
- Genymotion的安装配置与使用(一)
- vb.net 教程 20-3 控制Ie浏览器 6
- DrQA实践
- 1077: 字符串加密
- quartz学习笔记5:update
- 函数声明和函数表达式
- POI 数据