테스트 사이트 - 개발 중인 베타 버전입니다

100명이 지나갑니다

· 15년 전 · 1985 · 13
초 100개가 복도에 일렬로 늘어져있습니다.

처음에 초 100개가 모두 꺼져있는 상황입니다.

그 복도를 100명의 사람이 순차적으로 지나갑니다.

첫번째 사람이 지나가면서 100개의 초에 불을 켭니다.
두번째 사람이 지나가면서 2의 배수번째 초에 불이 켜져있으면 끄고, 불이 꺼져있으면 켭니다.
세번째 사람이 지나가면서 3의 배수번째 초에 불이 켜져있으면 끄고, 불이 꺼져있으면 켭니다.
네번째 사람이 지나가면서 4의 배수번째 초에 불이 켜져있으면 끄고, 불이 꺼져있으면 켭니다.

..... 계속 이런 식으로 진행합니다.


아흔아홉번째 사람이 지나가면서 99의 배수번째 초에 불이 켜져있으면 끄고, 불이 꺼져있으면 켭니다.
백번째 사람이 지나가면서 100의 배수번째 초에 불이 켜져있으면 끄고, 불이 꺼져있으면 켭니다.

100명이 지나간 후에 불이 켜져있는 초는 ??
몇번째 초인지, 총 몇개가 켜져있을까요?


댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 13개

에라 모르겠다 일단 올려놓고 보자 ㅎㅎ
아빠~~~~~

팔팔이 아저씨가 촛불 다 껐어~
배열이라니 ㅠㅠ
15년 전
for ($i=0; $i<100; $i++) // 양초 초기화
$candle[$i] = -1;

for ($i=1; $i<101; $i++) // 100명의 인간
for ($j=0; $j<100; $j++) // 100개의 초
if (($j+1)%$i == 0)
$candle[$j] *= -1;

echo "켜져있는 양초 : ";

$num = 0;

for ($i=0; $i<100; $i++) // 양초 초기화
if ($candle[$i] == 1) {
echo $i+1 . ", ";
$num++;
}

echo "총 {$num}개";

-------------------------------------------------------------

켜져있는 양초 : 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 총 10개

맞나요 -_-;; 아 저 한가한 사람 아닙니다.
와 정답입니다^^

이걸 코드로 짜시다니~
15년 전
양초 100개사서 해보려다가... 좀 아닌거 같아서 참았습니다.....-_-;;
15년 전
아근데, 이런거 말고... 이게 어떻게 저 수가 나오는지 구하는 방법 좀 알려주세요. 이게 이런식으로 하는건 아닐텐데;;;;;;;;;
이게 원리적으로 보면

초가 켜질려면 홀수명의 사람이 거쳐가야 합니다.

n번째 초는 n의 약수번째 사람이 거쳐가게 됩니다.

약수의 개수가 홀수개라는 것은 제곱수라는 거죠.

따라서 제곱수는 홀수명의 사람이 거쳐가고
제곱수가 아닌 수는 짝수명의 사람이 거쳐갑니다.
따라서 제곱수가 정답이 됩니다^^
그렇군요

게시글 목록

번호 제목
1658
1657
1645
1642
1632
1629
1624
1603
1595
1577
1575
1574
1586
1573
1550
1528
1520
1517
1544
1516
1514
1513
1499
1489
1487
1486
1475
1472
1471
1519