[백준/C] 4153번

김수현·2022년 5월 24일
0

Q) 과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오.

[ 예제 ]
입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다.
각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다.

입력출력
6 8 10right
25 52 60wrong
5 12 13right
0 0 0

A) 알고리즘

[ 직각삼각형 판단하는 공식 ]
가장 긴변^2 = 가장 짧은 변^2 + 나머지 변^2

  • c언어
  int n1, n2, n3;
  while(1){
    int l1, l2, l3;  
    scanf("%d %d %d", &n1, &n2, &n3); 
    if(n1 == 0 && n2 == 0 && n3 == 0) break; //세 수가 0일 때, 루프를 끝낼 수 있게 조건문 사용

    //각 변의 제곱을 미리 저장해 놈
    l1 = n1*n1; 
    l2 = n2*n2;
    l3 = n3*n3;

    if(l1==l2+l3 || l2==l1+l3 || l3==l1+l2){ //OR을 통하여 각 변에 대하여 판단함
      printf("right\n");
    }
    else{
      printf("wrong\n");
    }
  } //무한루프 문을 통해 여러 줄을 입력받게 함
  return 0;
  • comment
    scanf 여러 줄 받는 것에 어려움을 겪음

0개의 댓글