【中兴笔试题】三角形面积
来源:互联网 发布:北京我知科技有限公司 编辑:程序博客网 时间:2024/06/04 20:48
解题思路
这里先补充几个公式:
- 余弦定理:a²=b²+c²-2bc*cosA
- 三角形面积公式:S=1/2absinC=1/2acsinB=1/2bcsinA
三角形面积分三种情况
- 第一种相离
- 第二种包含
- 第三种相交
import java.math.BigDecimal;public class Solution { final double PI = 3.1415926; public double fun(int firstX, int firstY, int firstR, int secondX, int secondY, int secondR) { double ans = 0.0; double distance = Math.sqrt((firstX - secondX) * (firstX - secondX) + (firstY - secondY) * (firstY - secondY)); // 相离 if (firstR + secondR < distance) return 0.0; // 内含 else if (Math.abs(secondR - firstR) >= distance) { if (secondR >= firstR) ans = PI * firstR * firstR; else ans = PI * secondR * secondR; } // 相交 else { double angle1 = 2 * Math .acos((firstR * firstR + distance * distance - secondR * secondR) / (2.0 * firstR * distance)); double angle2 = 2 * Math .acos((secondR * secondR + distance * distance - firstR * firstR) / (2.0 * secondR * distance)); ans = firstR * firstR * angle1 / 2.0 + secondR * secondR * angle2 / 2.0 - firstR * firstR * Math.sin(angle1) / 2.0 - secondR * secondR * Math.sin(angle2) / 2.0; } BigDecimal bg = new BigDecimal(ans); ans = bg.setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue(); return ans; } public static void main(String[] args) { System.out.println(new Solution().fun(0, 0, 1, 0, 1, 1)); }}
阅读全文
0 0
- 【中兴笔试题】三角形面积
- 中兴笔试题 (一)
- 中兴笔试题 (二)
- 中兴08笔试题
- 中兴通讯笔试题
- 中兴软件笔试题
- 中兴笔试题-1
- 中兴笔试题-2
- 中兴笔试题-3
- 中兴笔试题
- 一道中兴笔试题
- 中兴笔试题
- 中兴通讯笔试题
- 中兴笔试题
- 中兴笔试题
- 中兴笔试程序题
- 中兴通讯笔试题
- 中兴历年笔试题
- 【爱情健检:七个问题检视你们的爱…
- 【别让男人打从心裡相信,他即使劈…
- 【女人之间只会互撕?这么想太幼稚…
- SSH连接至 Linux 服务器时,提示 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!的解决方法
- 【分手后还能当朋友吗?接受有一好…
- 【中兴笔试题】三角形面积
- 【没有对象的人,有个共同点就是……
- 【高敏感是种天赋:肯定自己的独特…
- java二分查找
- 美格智能4G通信模块SLM757 挖掘智能POS新蓝海
- ansible
- 【好行为养成3部曲】现代的人待在…
- 【大人,你可以生气】幼儿园来了一…
- 【爱情消逝的四个关系心理学】心理…