:: 게시판
:: 이전 게시판
|
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
12/04/16 23:51
간단하죠. 5개 중 3개면 총 가지수가 10가지니, 이걸 다 계산 해 보고 이 중 가장 일의 자리 수가 9와 가까운 것을 찾으면 되죠.
12/04/16 23:52
1) 이렇게 0~9까진가 1~9까지의 값이 5개의 값이 랜덤하게 정해질텐데..............
mod(10)을 하시면(=%10을 하시면) 그 결과값은 0~9 사이에 있게 됩니다. 나눗셈의 나머지가 갖는 성질이죠. 10으로 나누기때문에 10보다 큰 수는 결과값으로 나오지 않습니다. 하지만, 최초에 재시해 주신 식에는 rand()%10 "+1"이 되어있습니다. 즉, 0~9까지의 값을 갖는 결과가 1~10 까지의 값을 갖게 되는것이죠. 결국 rand() 함수를 이용해 첫번째와 두번째 for문에서 생성되는 값의 범위는 1~10 입니다. 2) 여기서 최대한 9의 가깝게 3개를 더할 수 있는 방법이 이해가 안됩니다 제가 이해한 바는 이렇습니다. 1부터 10까지의 숫자가 무작위로 선출되어 배열 5개에 각각 저장된다. 한가지 배열에서 또다시 무작위로 3가지 숫자를 뽑아내며, 해당 숫자의 조합을 통해 "1의자리가" 9에 가까운 수가 승리한다. 여기에서 조합은 부연설명에 언급하신 "덧셈"을 이용했구요. 예를들어 a[] = 1, 3, 5, 7, 9 라고 합시다.
a[3], a[4], a[5]가 무작위로 뽑힌다면 조합의 결과는(=덧셈의 결과는) 5+7+9 = 21이 될 것이고, 1의 자리만취하면 그 결과값이 1이 될겁니다. 최초의 덧셈결과 21에서 1의자리만 취하기 위해 %10을 하는 거구요.
12/04/16 23:56
콩쥐팥쥐님의 리플을 보고나니...5개의 배열값을 가지고 어떻게는 3가지를 조합해서 최대한 9에 가깝게 결과를 도출해 내는거라면...제 설명이 잘못된 방향일 수도 있겠구나...싶습니다.
5개의 배열값에서 모든 경우의 수를 따져서 1의자리 숫자의 덧셈 결과를 찾아 최대한 9에 가깝게 만드려면 구구단을 찍어내는것과 동일한 방법으로 for문을 돌려보시면 됩니다. for문의 연속으로 나오는 결과값을 일일이 비교해서 9에 가장 가까운 값을 찾아내면 되는거구요.
|