上海计算机协会-10月月赛-丙组-T1-直角三角形的判定

直角三角形的判定

内存限制: 256 Mb时间限制: 1000 ms

题目描述

给定三个正整数表示三角形的三条边,请判定它是否为直角三角形。

输入格式

第一行:三个整数 a,b与 c

输出格式

  • 若可以构成一个直角三角形,输出 Right Triangle
  • 否则,输出 No

数据范围

1gif.latex?%5Cle a, b, cgif.latex?%5Cle 10001≤a,b,c≤1000

样例数据

输入:

3 4 5

输出:

Right Triangle

输入:

3 3 3

输出:

No

题目出处

根据勾股定理:gif.latex?a%5E%7B2%7D+b%5E%7B2%7D%3Dc%5E%7B2%7D,也就是说:

if(a*a+b*b==c*c)

,就满足。

但要注意!!!----题目给出的数据a,b,c不一定按大小顺序输入(例如a=5,b=4,c=3),所以要先排序。这里就不麻烦地写swap了,用sort(大材小用了),实际得分100分:

#include <bits/stdc++.h>
using namespace std;

int a[4];

int main(){
	for(int i=1;i<=3;++i)cin>>a[i];
	sort(a+1,a+4);
    /*可以改成:
    if(a[1]>a[2])swap(a[1],a[2]);
    if(a[2]>a[3])swap(a[2],a[3]);
    if(a[1]>a[2])swap(a[1],a[2]);
    其实这也是没必要----因为我只需要保证c最大,a,b顺序与我无关。
    所以可以改成:
    if(a[2]>a[3])swap(a[2],a[3]);
    if(a[1]>a[3])swap(a[1],a[2]);
    */
	if(sqrt(a[1]*a[1]+a[2]*a[2])==a[3])cout<<"Right Triangle"<<endl;
    //也可以改成:if(a[1]*a[1]+a[2]*a[2]==a[3]*a[3])cout<<"Right Triangle"<<endl;
	else cout<<"No"<<endl;
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GaoGuohao2022

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值