本文分享的必刷题目是从蓝桥云课、洛谷、AcWing等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。
欢迎大家订阅我的专栏:算法题解:C++与Python实现!
附上汇总贴:算法竞赛备考冲刺必刷题(C++) | 汇总
【题目来源】
三角形类型
【题目描述】
读取表示三角形三条边的3 33个正整数A AA,B BB和C CC并按降序排列,使A AA边是三边中最大的一边。
接下来,根据以下情况,确定它们可以组成的三角形类型:
如果A ≥ B + C A\ge B+CA≥B+C,则说明三条边不能构成三角形,请输出:NAO FORMA TRIANGULO
否则,说明三条边可以构成三角形,然后按如下情况输出:
如果A 2 = B 2 + C 2 A^2=B^2+C^2A2=B2+C2,请输出:TRIANGULO RETANGULO
如果A 2 > B 2 + C 2 A^2\gt B^2+C^2A2>B2+C2,请输出:TRIANGULO OBTUSANGULO
如果A 2 < B 2 + C 2 A^2\lt B^2+C^2A2<B2+C2,请输出:TRIANGULO ACUTANGULO
如果三个边长度都相同,请输出:TRIANGULO EQUILATERO
如果只有两个边长度相同而第三个边长度不同,请输出:TRIANGULO ISOSCELES
【输入】
共一行,包含三个正整数A , B , C A,B,CA,B,C。
【输出】
输出A , B , C A,B,CA,B,C组成的三角形的类型。
注意,上述条件可能满足不止一条,这种情况下将所有类型名称,按题目介绍顺序输出,每行输出一条。
【输入样例】
7 5 7【输出样例】
TRIANGULO ACUTANGULO TRIANGULO ISOSCELES【算法标签】
#模拟#
【代码详解】
#include<bits/stdc++.h>usingnamespacestd;inta,b,c;intmain(){cin>>a>>b>>c;// 将最大数交换到a的位置if(a<b){intt=a;a=b;b=t;}if(a<c){intt=a;a=c;c=t;}// 检查是否能构成三角形if(a>=b+c){cout<<"NAO FORMA TRIANGULO"<<endl;}else{// 判断三角形类型if(a*a==b*b+c*c){cout<<"TRIANGULO RETANGULO"<<endl;// 直角三角形}if(a*a>b*b+c*c){cout<<"TRIANGULO OBTUSANGULO"<<endl;// 钝角三角形}if(a*a<b*b+c*c){cout<<"TRIANGULO ACUTANGULO"<<endl;// 锐角三角形}if(a==b&&b==c){cout<<"TRIANGULO EQUILATERO"<<endl;// 等边三角形}// 判断等腰三角形if(a==b&&c!=a&&c!=b||a==c&&b!=a&&b!=c||b==c&&a!=b&&a!=c){cout<<"TRIANGULO ISOSCELES"<<endl;// 等腰三角形}}return0;}【运行结果】
7 5 7 TRIANGULO ACUTANGULO TRIANGULO ISOSCELES