Skip to main content

어떤게 더 효율적인 프로그램일까요..?

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번이 있던데 뭐가 더 좋은건지 판단이 잘 안서네요..

2 thoughts to “어떤게 더 효율적인 프로그램일까요..?”

  1. c 공부하시나봐요 ^^;

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

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

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

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

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

댓글 남기기