直角三角形_算法分析

来源:互联网 发布:sql中if else例子 编辑:程序博客网 时间:2024/04/30 13:44

问题描述:

直角三角形_算法分析:已知道三角形的两条边,寻找第三边,构成直角三角形,不知道的那条边用-1 表示。

源码如下:

Code:
  1. #include <iostream>   
  2. #include <fstream>   
  3. #include <cmath>   
  4.   
  5. using namespace std;   
  6.   
  7. int main(int argc,char *argv[])   
  8. {   
  9.     //ifstream cin("aaa.txt");   
  10.     int a,b,c,n=0;   
  11.     cout.precision(3);   
  12.     while(cin>>a>>b>>c)   
  13.     {   
  14.       if(a==0&&b==0&&c==0)break;   
  15.       n++;   
  16.   
  17.       if(a==-1)   
  18.       {   
  19.           if(c*c-b*b<=0)   
  20.           {   
  21.               cout<<"Triangle #"<<n<<endl;//所给数据构不成直角三角形   
  22.               cout<<"Impossible"<<endl;   
  23.               cout<<endl;//换行   
  24.           }   
  25.           else  
  26.           {   
  27.               cout<<"Triangle #"<<n<<endl;//所给数据构能成直角三角形   
  28.               cout<<"a="<<fixed<<pow(c*c-b*b,.5)<<endl;//pow函数:计算x的y次方   
  29.               cout<<endl;//换行   
  30.           }   
  31.       }   
  32.       else if(b==-1)   
  33.       {   
  34.           if(c*c-a*a<=0)   
  35.           {   
  36.               cout<<"Triangle #"<<n<<endl;//所给数据构不成直角三角形   
  37.               cout<<"Impossible."<<endl;   
  38.               cout<<endl;//换行   
  39.           }   
  40.           else  
  41.           {   
  42.               cout<<"Triangle #"<<n<<endl;//所给数据构能成直角三角形   
  43.               cout<<"b= "<<fixed<<pow(c*c-a*a,.5)<<endl;   
  44.               cout<<endl;//换行   
  45.           }   
  46.       }   
  47.       else if(c==-1)   
  48.       {   
  49.           cout<<"Triangle #"<<n<<endl;   
  50.           cout<<"c="<<fixed<<pow(a*a+b*b,.5)<<endl;   
  51.       }   
  52.   
  53.     }   
  54.     return 0;   
  55. }  

测试结果:

Code:
  1. 3 4 -1   
  2. Triangle #1   
  3. c=5.000   
  4. 2 -1 9   
  5. Triangle #2   
  6. b= 8.775   
  7.   
  8. 6 7 -1   
  9. Triangle #3   
  10. c=9.220   
  11. 6 6 -1   
  12. Triangle #4   
  13. c=8.485   
  14. 6 -1 6   
  15. Triangle #5   
  16. Impossible.  

 

原创粉丝点击