题目:

题目背景

有这样一道经典的数学题:已知一个四边形的边长是四个连续的正整数,求证这个四边形的面积的最大值不为整数。小奔轻松地证明了这个问题,现在问题来了,大奔要求小奔以最快的速度算出给定边长的四边形的最大面积,但小奔并不精于编程,你能帮帮他吗?

题目描述

给出四个正整数a,b,c,d,表示四边形的四边长,求此四边形的最大面积。如无法构成四边形,则输出Impossible!

输入输出格式

输入格式:

一行a,b,c,d四个正整数

输出格式:

共一行,四边形的最大面积s

题目分析:

由BretschneiderBretschneiderBretschneider公式,面积 S=√[(p−a)(p−b)(p−c)(p−d)−abcdcos2(θ/2)]S=√[(p-a)(p-b)(p-c)(p-d)-abcdcos^2(θ/2)]S=√[(p−a)(p−b)(p−c)(p−d)−abcdcos2(θ/2)] 由此可看出四边固定时对角θ=180θ=180θ=180度时取得最大值√[(p−a)(p−b)(p−c)(p−d)]√[(p-a)(p-b)(p-c)(p-d)]√[(p−a)(p−b)(p−c)(p−d)]此又称为BrahmaguptaBrahmaguptaBrahmagupta公式。此时该四边形四顶点共圆,为一个圆内接四边形。

AC代码(pascal):

var
a,b,c,d,s,p:real;
begin
readln(a,b,c,d);
p:=(a+b+c+d)/2;
s:=(p-a)*(p-b)*(p-c)*(p-d);
if s<0 then writeln('Impossible!')
else
begin
s:=sqrt(s);
writeln(s:0:10);
end;
end.

最新文章

  1. 输入框三种输入方式(selenium webdriver 干货)
  2. node.js 的事件驱动
  3. C#调用SQL Server分页存储过程
  4. C语言文件的读写
  5. JavaScript基础——创建函数
  6. JQuery拖拽排序
  7. Invalid argument supplied for foreach()
  8. Egret 纹理、计时器
  9. Windows系统如何使用sqlmap
  10. java运算符优先级与流程控制
  11. Markdown 练习
  12. Linux下高并发socket最大连接数
  13. Go 语言之三驾马车
  14. Java8-2-Lambda表达式实战-一句话实现Map中按照Value排序
  15. Spark性能优化指南——基础篇(转载)
  16. 进程,线程,协程,io多路复用 总结
  17. Linux系统不能解析域名
  18. Spring Security基本配置
  19. 使用JQuery获取对象的几种方式(转)
  20. POJ-1644 To Bet or Not To Bet(概率DP)

热门文章

  1. Android零基础入门第47节:自动完成文本框AutoCompleteTextView
  2. AlwaysOn数据同步暂停及回退技术
  3. 微信后台.net网站接入
  4. 使用Microsoft Power BI进行基本的数据分析
  5. MySQL 查询缓存 QUERY_CACHE
  6. jquery-ui sortable 使用实例
  7. baiduMap试手《办理进京证和市区警察查询进京证的地址浏览》
  8. Qt的槽可以使用默认参数
  9. win7、win8客户端 连接win2003上的sqlserver2005 速度超慢
  10. spring boot单元测试之MockMvc