有了计算机后,数学计算变得如此简单。考虑下面这个例子。你可能清楚直角三角形
中,三条边
a
、
b
和
c
的长度(这里
c
是最长的一条,叫做斜边)具有这个关系
a
*
a
+
b
*
b
=
c
*
c
。这个公式称为勾股定理。
现在给出直角三角形的两条边,要求计算出第三条边。
2.输入描述
输入包含多个三角形的描述。每个描述在一行上,包括三个整数a、b 和c,表示三角
形的三条边长。三个数中有一个是-
1(未知边),其余两个是正数(已知的边)。
a
=
b
=
c
=0 表示输入的结束。
3.输出描述
对于输入数据中的每组三角形描述,先输出三角形的序号,请参考输出样例。如果不
存在这样的直角三角形,再输出“
Impossible.”。否则,直接输出未知边的长度,形式是
“
s
= l”,这里
s
是未知边的名称(
a
、
b
或
c
),
l
是指它的长度。
l
必须精确到小数点后
3
位数字。
每一组测试案例后输出一个空行。
4.输入样例
3 4 -1
-1 2 7
5 -1 3
0 0 0
5.输出样例
Triangle #1
c = 5.000
Triangle #2
a = 6.708
Triangle #3
Impossible.
#include<iostream>
#include<fstream>
#include<cmath>
using namespace std;
int main()
{
int a,b,c;
int num = 0;
ifstream in("D:\\visual studio 2013 code\\test.txt");
while(in>>a>>b>>c)
{
num++;
if(a==b==c==0) break;
if (c == -1)
{
//c = pow(a*a+b*b);
cout<<"Triangle #"<< num<<endl;
cout<<"c= "<<fixed<<pow(a*a+b*b,.5)<<endl;
cout<<endl;
}
else if(a==-1)
{
if(b>=c)
{
cout<<"Triangle #"<<num<<endl;
cout<<"Impossible."<<endl;
cout<<endl;
}
else
{
cout<<"Triangle #"<<num<<endl;
cout<<"a= "<<fixed<<pow(c*c-b*b,.5)<<endl;
cout<<endl;
}
}
else if(b==-1)
{
if(a>=c)
{
cout<<"Triangle #"<<num<<endl;
cout<<"Impossible."<<endl;
cout<<endl;
}
else
{
cout<<"Triangle #"<<num<<endl;
cout<<"b= "<<fixed<<pow(c*c-a*a,.5)<<endl;
cout<<endl;
}
}
}
return 0;
}