코딩테스트
[C++] 삼각형의 종류
뇨롱
2021. 6. 27. 00:17
숙제 1 (삼각형1)
세 개의 자연수 a b c (a ≤b ≤c)가 주어졌을때, 이 자연수를 삼각형의 세변의 길이로 하여 만들어질 수 있는 삼각형의 종류를판별하는 프로그램을 작성하시오. 삼각형의 종류에는 정삼각형, 직각삼각형, 이등변삼각형, 그리고 일반삼각형이 있다고 가정한다. 정삼각형은 삼각형의 세 변의 길이가 모두 같은 삼각형이며, 직각삼각형은 삼각형의 하나의 각이 직각인 경우이며, 이등변삼각형은 두 변의 길이만 같은 삼각형이다. 그 나머지 형태는 일반삼각형이다. 참고로, 한 변의 길이가 다른 두 변의 길이의 합보다 크거나 같은 삼각형은 존재하지 않는다.
#include<iostream>
using namespace std;
int equal(int a, int b, int c){
int count=0x00;
if(a==b) count+=1;
if(a==c) count+=1;
if(b==c) count+=1;
return count;
}
int main(){
int a,b,c;
cin>>a>>b>>c;
/* 삼각형이 성립 안될 조건
a+b<=c */
if(a+b<=c) printf("0");
else{
//직각 삼각형: a^2+b^2=c^2
if(a*a+b*b==c*c) printf("2");
//정삼각형: a=b=c
else if(equal(a,b,c)==3) printf("1");
//이등변삼각형
else if(equal(a,b,c)==1) printf("3");
//일반삼각형
else printf("4");
}
cout<<endl;
return 0;
}