南阳理工ACM 1009 So Easy[Ⅰ]

So Easy[Ⅰ]

时间限制: 1000 ms  |  内存限制: 65535 KB
难度: 2
描述

给出任意一个三角形的三个边a,b,c。

要求:求出这个三角形的外接圆半径。

输入
输入数据有多组。
每行有三个数a,b,c(0<a,b,c<100)
输出
输出一行单独的一个数表示三角形的的外接圆半径,输出保留两位小数。(不要输出多余的信息)
样例输入
3 4 5
样例输出
2.50

这个题感觉主要靠数学知识来求解,已知三角形三边怎么求外接圆半径,我自己推导半天没有什么进展,然后还是百度的公式就把这个题办了,AC代码如下:

#include<iostream>
#include<cstdio> 
#include<cmath>
using namespace std;
int main()
{
	int a,b,c;
	double p,r;
	while(~scanf("%d %d %d",&a,&b,&c)){
		p = (a + b + c) / 2.0;//注意转换类型,第一次交没转就wrong answer了
		r = a * b * c / (4 * (sqrt(p * (p - a)*(p - b)*(p - c))));
		printf("%.2f\n",r);
	}
	return 0;
}

猜你喜欢

转载自blog.csdn.net/xiao__hei__hei/article/details/80233236