Ver.2 ¶
~cpp
#include <stdio.h>
int Get_answer(int*, int*, int, int, int);
const int FALSE=-1;
const int TRUE=0;
void main()
{
while(1)
{
int x_1, x_2, y_1, y_2, beads, answer_1=0, answer_2=0;
printf("구슬의 개수를 입력하세요.(단, 0은 종료)\n>>");
scanf("%d",&beads);
if (0==beads)
break;
printf("테스트 케이스의 내용을 입력해 주세요.\n>>");
scanf("%d %d",&x_1,&x_2);
printf(">>");
scanf("%d %d",&y_1,&y_2);
if (FALSE==Get_answer(&answer_1,&answer_2,x_2,y_2,beads))
printf("failed\n");
else
printf("결과 : %d, %d",answer_1,answer_2);
}
}
int Get_answer(int* answer_1, int* answer_2, int x_2, int y_2, int breeds)
{
if (y_2==x_2 || x_2==breeds)
return FALSE;
if (0!=(breeds%x_2)%(y_2%x_2))
return FALSE;
*answer_2=(breeds%x_2)/(y_2%x_2);
*answer_1=((*answer_2)*y_2*(-1)+breeds)/x_2;
if (*answer_1<0)
return FALSE;
return TRUE;
}