코딩테스트

[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;

}