반응형
질문: 정보올림피아드 프로그래밍 | goun2721004 / 2009-04-08 07:43 |
프로그래밍 문제에서요
19. 다음은 어떤 프로그램의 일부이다. 다음 부분이 실행된 뒤 s의 값은?
s = 1;for (i = 1; i <= 2008; i++) { if (s < 5) { s *= 2; } else { s -= 5; }}
①2 ②3 ③4 ④6 ⑤8
이것을 어떻게 푸는 방법좀... 참고로 저는 초딩...
내공 20드림 내공냠냠 신고 | |
답변: re: 정보올림피아드 프로그래밍 | wsdcaptain / 2009-04-08 08:20 |
s = 1;for (i = 1; i <= 2008; i++) { if (s < 5) { s *= 2; } else { s -= 5; }}
s값이 5보다 작으면 2를 곱하고 그렇지 않으면 5를 빼는 것이 규칙입니다. 또한 i를 1에서 2008까지 순차적으로 증가합니다. 해당 규칙에 따르면 i에 따른 s의 변화는 다음과 같습니다.
i 수행 전 s 수행 후s 1 1 2 22 4 34 8 4 8 3 53 6 6 6 1 7 1 2 82 4 94 8 10 8 3 113 6 12 6 1 ... ... ... 6*n+1 1 2 6*n+22 4 6*n+34 8 6*n+4 8 3 6*n+53 6 6*n 6 1
즉, s는 1 2 4 8 3 6 1 2 4 8 ...과 같은 규칙에 의한 변화를 갖는다는 것을 알 수 있습니다. 2008은 6으로 나누면 나머지가 4이므로 3이라는 결론을 얻을 수 있습니다. 즉, 2번이 정답입니다.
고등 수학의 수열에서는 이와 같은 수의 규칙성에 대한 학습을 하게 됩니다. 이러한 수열은 집합, 명제, 행렬, 확률, 통계와 함께 전산에 중요한 위치를 차지하는 수학입니다. 즐공하세요. | |
정보 올림피아드 (0) | 2009.08.19 |
---|---|
중복되지 않게 랜덤한 카드 발생 (0) | 2009.08.19 |
파이, e, sin 구하기 (0) | 2009.08.19 |
Sin함수 만들기(II) (0) | 2009.08.19 |
적분 공식을 이용한 Sin(x)함수 만들기 (0) | 2009.08.19 |
간단하게 Random함수 만들기 (0) | 2009.08.19 |
재귀함수 형상화 (0) | 2009.08.19 |
한글 초성 알아내기 (0) | 2009.08.19 |
쉬프트 연산 (1) | 2009.08.19 |
비쥬얼 c++ 틀린부분점 ㅠ (0) | 2009.08.19 |