博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uva 10347 Medians (Simple Geometry)
阅读量:5233 次
发布时间:2019-06-14

本文共 2148 字,大约阅读时间需要 7 分钟。

  给出三条中线的长度,求三角形的面积。

  套公式可以过,不过我不明白为什么我求出三条边以后再判断是否能构成合法的三角形是错的。

AC的代码:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 7 using namespace std; 8 9 template
T sqr(T x) { return x * x;}10 11 double work(double x[], double m[]) {12 double s = 0.0, t[3];13 for (int i = 0; i < 3; i++) {14 if (m[i] <= 0) return -1.0;15 if (m[i] + m[(i + 1) % 3] <= m[(i + 2) % 3]) return -1.0;16 }17 for (int i = 0; i < 3; i++) {18 if (x[i] <= 0) return -1.0;19 // if (x[i] + x[(i + 1) % 3] <= x[(i + 2) % 3]) return -1.0;20 t[i] = sqrt(x[i]);21 s += t[i];22 }23 s /= 2.0;24 return sqrt(s * (s - t[0]) * (s - t[1]) * (s - t[2]));25 }26 27 int main() {28 double med[3], x[3];29 while (true) {30 for (int i = 0; i < 3; i++) if (!(cin >> med[i])) return 0;31 for (int i = 0; i < 3; i++) {32 x[i] = (sqr(med[i]) + sqr(med[(i + 1) % 3])) * 2.0 - sqr(med[(i + 2) % 3]);33 x[i] *= 4.0 / 9.0;34 // cout << x[i] << endl;35 }36 printf("%.3f\n", work(x, med));37 }38 }
View Code

 

我觉得是正确的一份代码:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 7 using namespace std; 8 9 template
T sqr(T x) { return x * x;}10 11 double work(double x[]) {12 double s = 0.0, t[3];13 for (int i = 0; i < 3; i++) {14 if (x[i] <= 0) return -1.0;15 if (x[i] + x[(i + 1) % 3] <= x[(i + 2) % 3]) return -1.0;16 t[i] = sqrt(x[i]);17 s += t[i];18 }19 s /= 2.0;20 return sqrt(s * (s - t[0]) * (s - t[1]) * (s - t[2]));21 }22 23 int main() {24 double med[3], x[3];25 while (true) {26 for (int i = 0; i < 3; i++) if (!(cin >> med[i])) return 0;27 for (int i = 0; i < 3; i++) {28 x[i] = (sqr(med[i]) + sqr(med[(i + 1) % 3])) * 2.0 - sqr(med[(i + 2) % 3]);29 x[i] *= 4.0 / 9.0;30 // cout << x[i] << endl;31 }32 printf("%.3f\n", work(x));33 }34 }
View Code

 

产生差别的数据是 2 3 4。

  对于这个问题,我已经发邮件给uva的管理员,希望能等到答复。或者有大神能解答就更好了~

 

——written by Lyon

转载于:https://www.cnblogs.com/LyonLys/archive/2013/05/30/uva_10347_Lyon.html

你可能感兴趣的文章
解决 sublime text3 运行python文件无法input的问题
查看>>
javascript面相对象编程,封装与继承
查看>>
Atlas命名空间Sys.Data下控件介绍——DataColumn,DataRow和DataTable
查看>>
Java中正则表达式的使用
查看>>
算法之搜索篇
查看>>
新的开始
查看>>
java Facade模式
查看>>
NYOJ 120校园网络(有向图的强连通分量)(Kosaraju算法)
查看>>
SpringAop与AspectJ
查看>>
Leetcode 226: Invert Binary Tree
查看>>
http站点转https站点教程
查看>>
解决miner.start() 返回null
查看>>
bzoj 2007: [Noi2010]海拔【最小割+dijskstra】
查看>>
BZOJ 1001--[BeiJing2006]狼抓兔子(最短路&对偶图)
查看>>
C# Dynamic通用反序列化Json类型并遍历属性比较
查看>>
128 Longest Consecutive Sequence 一个无序整数数组中找到最长连续序列
查看>>
定制jackson的自定义序列化(null值的处理)
查看>>
auth模块
查看>>
javascript keycode大全
查看>>
前台freemark获取后台的值
查看>>