10 简化几何计算

来源:互联网 发布:怎么样学数据库 编辑:程序博客网 时间:2024/05/21 06:35
有了计算机后,数学计算变得如此简单。考虑下面这个例子。你可能清楚直角三角形中,三条边a的长度(这里是最长的一条,叫做斜边)具有这个关系a*b*=c*c。这个公式称为勾股定理。现在给出直角三角形的两条边,要求计算出第三条边。
2.输入描述
输入包含多个三角形的描述。每个描述在一行上,包括三个整数ac,表示三角形的三条边长。三个数中有一个是-1(未知边),其余两个是正数(已知的边)。a=b=c=0 表示输入的结束。
3.输出描述
对于输入数据中的每组三角形描述,先输出三角形的序号,请参考输出样例。如果不存在这样的直角三角形,再输出“Impossible.”。否则,直接输出未知边的长度,形式是= l”,这里是未知边的名称(ac),是指它的长度。必须精确到小数点后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;}



0 0
原创粉丝点击