ab + ba = 99

위 공식이 성립되는 a 와 b를 구하는 프로그램으로

1번
#include <stdio.h>


int main(void)
{
      int a, b;


      for(a=0; a<10; a++)
      {
            for(b=0; b<10; b++)
            {
                  if((a*10+b)+(b*10+a)==99)
                        printf("%d%d + %d%d = 99\n", a, b, b, a);
            }
      }


      return 0;
}

2번
#include <stdio.h>

int main(void)
{
      int a, b;
      int result;

      for(a=1; a<10; a++)
      {
            for(b=1; b<10; b++)
            {
                  if(a==b)
                        continue;
                  result=(a*10+b)+(b*10+a);
                  if(result==99)
                        printf("%d%d + %d%d = %d\n", a, b, b, a, result);
            }
      }

      return 0;
}

위 두가지중 어떤게 더 좋은 프로그램일까요..?

C언어 공부중에 나온 문제(열혈강의)인데 1번이 제가 푼거인데
해답으로 2번이 있던데 뭐가 더 좋은건지 판단이 잘 안서네요..

신고
  1. BlogIcon suchc 2008.02.23 01:28 신고

    c 공부하시나봐요 ^^;

    저도 잘은 모르지만, 우선 1번 방법은 초기화를 0으로 하셨네요, 1부터 하셔도 될 것 같은데 말이죠 (0+0!=99죠? 불필요하게 가짓수를 늘릴 필요는 없어보이네요)

    1번에 비해 2번은 else의 경우를 continue를 통해 처리하였고,

    연산된 값을 변수로 대입하여 이를 조건 분기문으로 처리했네요

    1번은, 특별한 알고리즘 없이 1:1으로 대응한거구요 (대부분의 학부생들이라면 이렇게 할겁니다 -ㅁ-;;)

    솔직히 간단한 문제라서 어느게 더 낫다고 못하겠지만 2번이 문제를 해결하는 정석으로 보입니다 ㅎ

+ Recent posts