码迷,mamicode.com
首页 > 编程语言 > 详细

圆周上两点距离-python

时间:2017-09-10 12:40:55      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:str   find   之间   range   turn   max   rip   port   stdin   

#!/bin/python
# -*- coding: UTF-8 -*-
import sys

"""搜狗题目,圆周上两点距离,
第一行:输入n(圆上的n个点) 第二行:输入n个点的度数s(0<=s<=360) 双精度,8位小数
输出园中距离最远的两点之间的夹角度数m(0<=m<=180),双精度,保留8位小数
"""
n = input()
circle = []
for i in range(n):
doublenum = sys.stdin.readline().strip()
doublenum = float(doublenum)
circle.append(doublenum)

"""二分查找寻找下届,恰好小于key"""
def Binery_Find(circle,n,key):
low = 0
high = n-1
mid = (low + high) / 2
while low < high:
if circle[mid]< key :
low = mid
else:
high = mid -1
mid = (low + high+1) / 2
return mid
maxx = 0
for i in range(n-1):
key = circle[i]+180
if key > 360:
key -= 360
mid1 = Binery_Find(circle,n,key)
mid2 = mid1+1
if mid1< n-1:
maxx = max(circle[mid1]-circle[i],maxx,360-(circle[mid2]-circle[i]))
else:
maxx = max((circle[mid1] - circle[i]), maxx)
print "%.8f"%maxx

圆周上两点距离-python

标签:str   find   之间   range   turn   max   rip   port   stdin   

原文地址:http://www.cnblogs.com/xuxl-face2018/p/7500577.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!