결과가 옳은 소스를 작성하긴했는대...
부루
2023.04.01
질문 제목 : 소스변경소스변경질문 내용 :
#includestdio.h
#includeconio.h
int main()
{
int a;
int b;
int c=1;
printf(두 정수를 입력해라 );
scanf(%d %d,&a,&b);
c=a+b;
for(;1;c--)
{
if(a%c==0 && b%c==0)
{
printf(\n%d와 %d의 최대공약수는 %d 이다,a,b,c);
break;
}
}
getch();
return 0;
}이렇게 작성하니 결과적으론 최대공약수 값이 나오긴하는대요.
빨간부분의과정이 약간의 편법으로 작성한거같아서 맘에 안드네요...
c=a+b란 부분을 없애고 c--를 c++로 작성해서 값을 얻을수있나요? 이렇게 작성해야 모범답안인거같아서요.
c++로 하니 최대공약수를 1에서 넘길 방법을 못찾겠어여...
-
윤슬이뿌잉
그렇군요 조언감사드려요 ㅎㅎ
-
눈꽃
\최대\공약수를 찾는 문제이니, 작은 수에서부터 이것이 최대공약수인가를 판별하다보면 여러 개의 공약수 중에서 가장 마지막의 것을 찾아야 합니다. 그런데 큰 수에서부터 판별하다보면 처음 만나는 공약수가 최대공약수가 됩니다. 전자는 조금더 복잡해지지요.
올바른 결과가 나오고, 코드가 조금더 간결하고, 읽기 쉽다면, 아주 잘 푼 것이라고 할 수 있습니다. -
주인님
결과 값만 제대로 나오면 끝이라고 봅니다. 그다음은 효율성정도 아닐까요???