题目好像是这样的给出一组数据点,这些点都在圆上,给出每个点的距离正北方向的角度,角度为顺时针递增,求圆上的点最多可以组成多少个钝角三角形,下面看一下输入样例。
第一行 x 表示有 多少个点
第2行到n行为每个点到正北方向的角度。
输出 y 表示有最多有y 个钝角三角形
输入样例
4
0
180
179
45
输出样例
2
解题思路,由于根据数学知识可知圆上的点与直径组成的三角都为直角三角形,圆上任意三点在劣弧内,则构成钝角三角形,因为劣弧为小于半圆的长度,我可以采用二分思想,分步计算。
大家可以画图,找出规律。最后列出数学求解公式
代码如下:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;public class Main {public static void main(String[] args) {BufferedReader br=new BufferedReader(new InputStreamReader(System.in));Integer n = null;try {n = Integer.parseInt(br.readLine());List<Double> list2=new ArrayList<Double>();for(int i=0;i<n;i++){list2.add(Double.parseDouble(br.readLine()));   }List<Double> list=new ArrayList<Double>();//获取可以构成半径的点for(int i=0;i<n;i++){if(list2.get(i)>180){break;}for(int j=i+1;j<n;j++){if(list2.get(i)+180==list2.get(j)){list.add(list2.get(i));break;}}}int sum=0;//劣弧上的点的个数int num=0;//其他点的个数for(int i=0;i<list.size();i++){double temp=list.get(i);list2.remove(temp);list2.remove(temp+180);for(int j=0;j<list2.size();j++){if(list2.get(j)>temp&&list2.get(j)<temp+180){sum++;}else{num++;}}}int t1=0;int t2=0;for(int i=1;i<sum;i++){t1+=i;}for(int i=1;i<num;i++){t2+=i;}System.out.println(t1*2+t2*2);} catch (NumberFormatException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}

搜狗笔试题~求圆上的点最多可以组成多少个钝角三角形相关推荐

  1. 小程序转盘抽奖,已知圆心、半径、角度求圆上点的坐标

    因公司的需求,要在小程序语音房内部迭代一个真心话大冒险的功能,也等同于幸运转盘: 业务场景: 发送一个socket,拿到响应的结果,根据返回的数值开始启动幸运转盘,由于转盘上的人数不是固定的,所以要根 ...

  2. 一道笔试题--求二进制数1的个数

    要进一家新公司难免要进行笔试,虽然笔试通过的人很多都有背题之嫌,但是统计意义上最起码可以看出一个程序员的认真程度,毕竟很多公司的考题也不是自己创的,也是在网上偷的,允许公司偷题就必须允许应聘者偷答案. ...

  3. python怎么计算圆_python根据圆的参数方程求圆上任意一点的坐标

    from math import cos, sin,pi x0,y0=0,0 r=4.0 angle=-25 x1 = x0 + r * cos(angle * pi / 180) y1 = y0 + ...

  4. 在python中输入圆的半_python根据圆的参数方程求圆上任意一点的坐标

    原博文 2018-11-06 16:28 − from math import cos, sin,pi x0,y0=0,0 r=4.0 angle=-25 x1 = x0 + r * cos(angl ...

  5. [2013百度软件研发笔试题] 求字符串中连续出现同样字符的最大值

    题目完整描写叙述为:用递归的方式实现一个求字符串中连续出现同样字符的最大值.如aaabbcc,连续出现a的最大值为3,abbc,连续出现字符最大的值为2. 下面是我想出来的方法: #include & ...

  6. 已知圆心,半径,角度,求圆上的点坐标

    很简单一个小学算法- 圆点坐标:(x0,y0) 半径:r 角度:a0 则圆上任一点为:(x1,y1) x1 = x0 + r * cos(ao) y1 = y0 + r * sin(ao ) 转换成j ...

  7. 并查集——小米笔试题求朋友圈个数,分小组个数

    先给出小米的题: 已知有n个人和m对好友关系(存于数组r).如果两个人是直接或间接的好友(好友的好友的好友-),则认为他们属于同一个朋友圈,请写程序求出这n个人里一共有多少个朋友圈. 假如:n = 5 ...

  8. 已知圆心,半径,角度,求圆上的点坐标。

    当需要用时才发现,初中学的东西都已经忘了,在网上搜到以下公式,需要用时也好找了. 圆点坐标:(x0,y0) 半径:r  角度:a0 则圆上任一点为:(x1,y1)  x1   =   x0   +   ...

  9. python根据圆的参数方程求圆上任意一点的坐标

    from math import cos, sin,pix0,y0=0,0 r=4.0 angle=-25 x1 = x0 + r * cos(angle * pi / 180)y1 = y0 + r ...

最新文章

  1. VS Code 成主宰、Vue 备受热捧!2019 前端开发趋势必读
  2. python3.7.2使用-centos7系统下python2与python3共存
  3. 项目实战丨某高校校园网络升级改造方案
  4. UITextView 用法小结
  5. 【深入浅出WF】——令牌环的变身—书签
  6. 广东中山一楼盘在平台直播卖房 4小时售出600套
  7. 想要高清壁纸,高图桌面壁纸网站值得收藏!
  8. jetty运行web项目
  9. 如何证明一个问题是NP-Hard或NP-Complete?
  10. Element-UI合集之el-select
  11. date 日期时间命令
  12. Spring实战第五版(中文版)学习笔记-第一章 Spring起步
  13. 【ENVI】shp文件裁剪需要注意的问题
  14. 深度学习入门极简教程(一)
  15. 翟菜花:搭上营销快通车的乳业,又是如何玩转互联网营销时代的?
  16. 批处理文件(bat)装逼 之全彩滚动我爱你 绘制五彩爱心 绘制3D球体
  17. python绘制语谱图(不掉包实现)
  18. Nginx学习八:虚拟主机
  19. 什么是BI、什么是ETL?一篇文章告诉你
  20. vc使用默认的浏览器打开网页代码

热门文章

  1. 通用串行总线控制器:由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件设备(代码 19
  2. 手机CPU与电脑CPU的性能究竟差多少?
  3. 关于hasOwnProperty报错的问题
  4. dreamweaver后缀名_Dreamweaver CC
  5. 余弦向量相似性和SIFT算法在股票相似性中的使用(1)
  6. 基于Matlab的斜率积分法求离面位移
  7. AIGC|我让AI来写今年高考作文
  8. 医学分析专业名词解释
  9. GEE Landsat8去云之后填补的NDVI
  10. OpenCV-Python的一些简单用法