1. 程式人生 > >20170908線上程式設計之圓周上問兩點間的距離問題

20170908線上程式設計之圓周上問兩點間的距離問題

    好久沒參加考試了,今天收到了某公司發來的程式設計題目就做了一下,無奈都是超時,也沒有想到好的其他的思路,就只好提交了,這裡我嘗試了python和java兩種版本的程式碼都是超時,現在貼出來希望拋磚引玉得到高手指點,謝謝

題目大意:

輸入
先輸入點數n

之後每行為圓周上點的角度求圓周上相距最遠的點的距離,以角度值表示即可

下面是python的實現:

import math

num=180.00000000
n=int(raw_input())
num_list=[]
for i in range(n):
    num_list.append(float(raw_input()))
res_list=[]
for i in range(n):
    for j in range(i+1,n):
        tmp=abs(num_list[i]-num_list[j])
        if tmp>num:
            res_list.append(abs(tmp-num))
        else:
            res_list.append(tmp)
res=max(res_list)
temp=str(res)
length=len(temp.split('.')[-1])
if length<8:
    temp+='0'*(8-length)
print temp

結果如下:

4
10.00000000
180.00000000
183.00000000
198.00000000
173.00000000

下面是Java的實現:

import java.io.BufferedReader;  
import java.io.IOException;  
import java.io.InputStreamReader; 
import java.util.Scanner;
import java.text.DecimalFormat;


class Distance1 
{
	public static void main(String[] args) 
	{
		//BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); 
		//int n = bf.readLine();
		DecimalFormat df = new DecimalFormat( "0.00000000");
		Scanner sc = new Scanner(System.in);  
		int n = sc.nextInt();
		double [] test=new double[n];
		for (int i=0;i<n ;i++ )
		{
			//test[i]=bf.readLine();
			test[i]=sc.nextDouble();
		}
		double flag=1.00000000;
        for (int i=0;i<n ;i++ )
        {
			for(int j=0;j<n;j++)
			{
			    double tmp=Math.abs(test[i]-test[j]);
				if (tmp>180)
				{
					tmp=Math.abs(tmp-180.00000000);
				}
				flag=flag>tmp?flag:tmp;
			}
        }
		System.out.println(df.format(flag));
	}
	
}

結果如下:

4
10.00000000
180.00000000
183.00000000
198.00000000
173.00000000

相關推薦

20170908線上程式設計圓周兩點距離問題

    好久沒參加考試了,今天收到了某公司發來的程式設計題目就做了一下,無奈都是超時,也沒有想到好的其他的思路,就只好提交了,這裡我嘗試了python和java兩種版本的程式碼都是超時,現在貼出來希望拋磚引玉得到高手指點,謝謝 題目大意: 輸入 先輸入點數n 之後每行為圓周

高德地圖周邊搜尋及兩點距離計算(Poi的使用)

最近比較閒,所以就順便研究高德地圖,原因是之前基本上都用的百度地圖,但是百度地圖的程式碼太多了,兩字,很煩。 先來個效果圖: 藍色的marker就是點選的,藍色的圓圈是我當前位置。 apk下載地址:http://download.csdn.net/de

20170923線上程式設計輸入年、月、日輸出這是一年的第幾天

    最近的一週的時間一直忙於現場筆試了,線上筆試也都沒怎做,真好今天收到了一個算是比較期待的offer吧,就不想出去跑了,留在酒店休息休息,突然發現今天我居然有5個筆試,索性就做吧,早上10:00-12:00是4399和獵豹的兩場筆試,只好每場筆試分差不多一半的時間了,

程式設計24點遊戲的實現

#include<set> #include<stdio.h> using namespace std; set<int> f(int i); void game24(int Array[]); bool Check(set<int

20170909線上程式設計田忌賽馬問題

    一大早起來收拾一下就是一場筆試,題目很直接,只有三道題目都是程式設計,這就完全是能力了,可惜我能力不行做不出來,三道題目之有第一道做出來了,所以肯定是要gg了,現在簡單分享下吧,希望能幫到同樣在找工作在筆試的同學 題目: 就是我們耳熟能詳的田忌賽馬問題,關鍵點是需要

Windows核心程式設計郵槽實現程序通訊

    郵槽是Windows系統提供的一種單向通訊的機制。即程序中的一方只能寫入或讀取資料,而另一方則只能讀取或寫入資料。通過郵槽,使用者可以實現一對多或跨網路的程序之間的通訊。但是,郵槽能傳輸的資料

根據經緯度計算兩點距離(別我公式細節,我也沒明白,照搬就行)

import java.util.HashMap; import java.util.Map;    public class MapDistance {               private static double EARTH_RADIUS = 6378.137

IOS 在iOS地圖繪製兩點路線

當我們獲取了一組地理位置後,可能會想要在地圖上繪製這組地理位置資訊所包含的路線。 MKMapView提供了addOverlay功能(以及addAnnotation),讓我們可以在地圖上放一層遮罩。如果要放一組遮罩,可以用addOverlays。 #pragma 

Java 地球計算兩點之間距離計算方法

(1)包含經緯度的點物件 package com.ict.dto; /** * Created by chenlong on 2017/7/6. * Info: */ public cla

5-3 兩點距離計算

2.x distance space 重載 生成 數據 使用 函數 結果 給出下面的一個基類框架: class Point_1D { protected: float x;//1D 點的x坐標 public: Point_1D(float p = 0.0); float

2.15 兩點距離

new enter ring point tween void sta port n) import java.util.Scanner;  public class Jisuanjl{   public static void main(String[] args){

bzoj2125 最短路——仙人掌兩點距離

spa bsp ios bzoj2125 處理 dep 答案 pre 最短路 題目:https://www.lydsy.com/JudgeOnline/problem.php?id=2125 仙人掌!模仿 lyd 的代碼寫的,也算是努力理解了; 主要分成 lca 在環上和不

人生第一道水題 計算兩點距離

#include<stdio.h> #include<math.h> int main() { double x1,y1,x2,y2,s; while(scanf("%lf %lf %lf %lf",&x1,&y1,&x

ZZULIOJ1013: 求兩點距離

題目描述 給定A(x1, y1), B(x2, y2)兩點座標,計算它們間的距離。   輸入 輸入包含四個實數x1, y1, x2, y2,分別用空格隔開,含義如描述。其中0≤x1,x2,y1,y2≤100。   輸出 輸出佔一行,包含一個實數d,

人生中第一道水題 計算兩點距離

#include<stdio.h> #include <math.h> #include <stdlib.h> int main() { double x1,y1,x2,y2,s; while(scanf

zzuli OJ 1013: 求兩點距離

題目描述 給定A(x1, y1), B(x2, y2)兩點座標,計算它們間的距離。 輸入 輸入包含四個實數x1, y1, x2, y2,分別用空格隔開,含義如描述。其中0≤x1,x2,y1,y2≤100。 輸出 輸出佔一行,包含一個實數d,表示A, B兩點間的距離。結果保留兩位小

【C++類和物件】計算兩點距離的兩種方法

使用類的組合(線段Line類中包含點Point類成員): #include <iostream> #include <cmath> using namespace std; //Point類的定義 class Point { public: Po

2586 How far away ? (LCA求樹上兩點距離模板題)

There are n houses in the village and some bidirectional roads connecting them. Every day peole always like to ask like this "How far is i

c++實驗二 兩點距離

/* * 檔名稱: 兩點間距離的求解 * 作 者: 馬家駿 * 完成日期: 2016年3 月24 日 * 版 本 號:v1.0 * 對任務及求解方法的描述部分: * 輸入描述: * 問題描述: 輸入兩個點的座標,求兩點之間的距離並

java根據兩個地點的經緯度計算兩點距離

上程式碼(複製到專案中可直接使用):import java.text.DecimalFormat; /** * @author [email protected] * @date 201