ëŠ�ë‚€ì � ë°� 설명 ¶
ë¬¸ì œë“¤ì�´ 갈수ë¡� 산수를 요구하는 귀찮ì�€ 현ìƒ�ì�´..OTL..ã… .ã…œ
간단한 산수를 해서 ì•Œê³ ë¦¬ì¦˜ì�„ 만들어 주었다..지만 사실ì�€ 매우 간단..
단지 y를 0부터 시작해서 ì •ìˆ˜ xê°’ì�´ 나오는가 보는 것 ë¿�ì�´ë‹¤. 물런 xê°€ ì�Œìˆ˜ê°’ì�´ë©´ 실패..
그럼~ �만.^^*
간단한 산수를 해서 ì•Œê³ ë¦¬ì¦˜ì�„ 만들어 주었다..지만 사실ì�€ 매우 간단..
단지 y를 0부터 시작해서 ì •ìˆ˜ xê°’ì�´ 나오는가 보는 것 ë¿�ì�´ë‹¤. 물런 xê°€ ì�Œìˆ˜ê°’ì�´ë©´ 실패..
그럼~ �만.^^*
무한한 루프� �광으로 부터 나를 구해내리�~>�<;;
앞ì—� 훌ë¥í•˜ì‹ ì„ ë°°ë‹˜ì¤‘ 한분ì�´ ì�´ëŸ° 최악ì�˜ ì¡°ê±´ì�„ 만드셔서..
2000000000 앞ì—� 훌ë¥í•˜ì‹ ì„ ë°°ë‹˜ì¤‘ 한분ì�´ ì�´ëŸ° 최악ì�˜ ì¡°ê±´ì�„ 만드셔서..
1 3
1900000000 1900000000
물런 ì €ê±¸ 넣으면 시간ì�´ ë§Žì�´ 걸리ëƒ�..하면 그건 아니다.ã…Ž
바로바로 나오지만 ì™ ì§€ 루프를 ë§Žì�´ ë�Œë©´ 시로~ 그래서 ìˆ˜ì •..
연산량 축소가 맞는지는 ëª¨ë¥´ê² ì§€ë§Œ..
모~ 그럼 �만~^^*
바로바로 나오지만 ì™ ì§€ 루프를 ë§Žì�´ ë�Œë©´ 시로~ 그래서 ìˆ˜ì •..
연산량 축소가 맞는지는 ëª¨ë¥´ê² ì§€ë§Œ..
모~ 그럼 �만~^^*
소스 ¶
Ver.1 ¶
~cpp
#include <stdio.h>
int Get_answer(int, int, int, int, int);
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);
while(0==(answer_1=Get_answer(answer_1,answer_2,x_2,y_2,beads)))
++answer_2;
if (answer_1<0)
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)
{
int temp=answer_2*y_2*(-1)+breeds;
if (0!=temp%x_2 && temp/x_2>=0)
return 0;
return temp/x_2;
}
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;
}










