백준(C언어) 풀이/수학

백준(C) 4153번 직각삼각형 풀이

개발윗미 2021. 9. 20. 19:37

C로 구현한 4153번 직각삼각형 문제 풀이입니다.

 

https://www.acmicpc.net/problem/4153

 

4153번: 직각삼각형

입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다.

www.acmicpc.net


#include <stdio.h>

int main() {
	long a, b, c;
	while(1) {
		scanf("%ld %ld %ld", &a, &b, &c);
		if(a == 0 && b == 0 && c == 0)
			break;
		a *= a;
		b *= b;
		c *= c;
		if(a+b==c || a+c==b || b+c==a)
			printf("right\n");
		else
			printf("wrong\n");
	}
}

 

기본적으로 삼각형이 직각인지 판별할 때 세변의 길이의 각 제곱 값을 통해 알 수 있다.

 

while문을 통해 세 변의 길이를 입력받고 만약 세 변의 길이가 모두 0이라면 반복문을 빠져나와 종료한다.

 

그렇지 않다면, 변수 a에 a 제곱값을, 변수 b에 b 제곱값을, 변수 c에 c 제곱값을 할당한다.

 

조건문을 통해 3가지의 경우 중 하나라도 만족한다면 직각 삼각형이므로 "right" 문자열을 출력하고

 

그렇지 않다면 직각 삼각형이 아니므로 "wrong" 문자열을 출력한다.