[ QuizWit ] in KIDS 글 쓴 이(By): oldtree (하늘빛) 날 짜 (Date): 1995년09월13일(수) 11시57분38초 KDT 제 목(Title): [Re][Ans]구슬 나누기 앞에서 guest님이 답해주신 답 5^5+4=3129는 5로 나누었을 때 1이 남지 않았기 때문에 답이 되지 못합니다. 제가 문제를 명확하게 쓰지 못해서 그런건가요..? 예를 들어 21은 5*4+1로 나타내어질 수 있으므로, 하나를 버리고 한 사람이 4를 택하면 16이 남습니다. 그리고 16=5*3+1이므로 역시 하나를 버리고 한 사람(여기서는 B)가 3을 택하면 12가 남죠... 그러니까 두번까지 밖에 진행이 되지 않습니다... 왜냐하면 12는 5*x+1꼴로 표시가 되지 않기 때문입니다. 위의 구슬 나누기의 정답은 15621입니다... 정답을 내기 위한 프로그램은 다음과 같습니다.. 단순 무식한 알고리즘.. ---- #include <stdio.h> main() { int i=0; int temp; for (int k =1 ; k< 20; k++) { while (1) { temp = ++i; for (int j=0; j < k; j++) { if ( (temp-1)%5 != 0 ) break; temp = (temp-1)/5 * 4; } if ( j == k ) break; } printf("in %2d : num = %d\n", k-1, i); } } ------------ 정수론 쪽에서 어떤 풀이 방법이 있을 것 같은데.. 아시는 분 있으면 포스팅 해 주세요.. |