勾股定理是毕达哥拉斯和他的学派在公元前 500 年左右发现的,想用它解题得先知道什么是勾股定理。
勾股定理是指:直角三角形短边1的平方+短边2的平方=长边的平方,如图一,3*3+4*4=5*5=25。

(图一)
因此,我们可以编写出以下代码,来判断当前三角形是不是直角三角形:
#include<iostream>
using namespace std;
int main(){
int a,b,c;
cin>>a>>b>>c;
if(a*a+b*b==c*c){
cout<<"It can make a Right Triangle";
}else{
cout<<"It can't make a Right Triangle";
}
return 0;
}
明白了这些,我们就可以来做一些看似很难的题目了:
题目描述
小蜗牛想从A位置(坐标为xa,ya)爬到B位置(坐标为xb,yb),要从A点到达B点似乎有很多条路可以选择。
但小蜗牛移动起来真的很慢,我们来帮它找一条最短的线路吧。
两点之间线段最短是一个公理。又名线段公理。
输入格式
共两行。
第一行是两个实数xa,ya,即A位置的坐标。
第二行是两个实数xb,yb,即B位置的坐标。
输入中所有实数的绝对值均不超过1000。
输出格式
一个实数,即线段AB的长度,保留到小数点后3位。
样例数据
input
1.5 0
2.5 -1.5
output
1.803
首先分析题目,我们并不知道a、b点的x值和y值,所以先画图,如图二。

(图二)
我们可以把AB两点间的线段看成长边,补充一个直角三角形,如图三。

(图三)
这样横短边即等于A点的x值-B点的x值,竖短边即等于A点的y值-B点的y值,最后再取绝对值就行了。代码如下:
#include <iostream>
#include <iomanip>
#include <cmath>
using namespace std;
int main(){
double xa,ya,xb,yb,s,z,l;
cin>>xa>>ya>>xb>>yb;
if(xa<xb)s=xa-xb;
else
s=xb-xa;
if(ya<yb)z=ya-yb;
else
z=yb-ya;
l=sqrt(s*s+z*z);
cout<<fixed<<setprecision(3)<<l;
return 0;
}
这样这道题就解开了。
求关注!!!