메뉴 건너뛰기

app

[문제] 넥슨 입사 문제 1번

박영식2007.02.20 15:33조회 수 2340댓글 0

    • 글자 크기
>
>1번 설명
>
>
>
>어떤 자연수 n이 있을 때, d(n)을 n의 각 자릿수 숫자들과 n 자신을 더한 숫자라고 정의하자.
>예를 들어 d(91) = 9 + 1 + 91 = 101
>이 때, n을 d(n)의 제네레이터(generator)라고 한다. 위의 예에서 91은 101의 제네레이터이다.
>어떤 숫자들은 하나 이상의 제네레이터를 가지고 있는데, 101의 제네레이터는 91 뿐 아니라 100도 있다.
>그런데 반대로, 제네레이터가 없는 숫자들도 있으며, 이런 숫자를 인도의 수학자 Kaprekar가
>
>셀프 넘버(self-number)라 이름 붙였다.
>예를 들어 1,3,5,7,9,20,31 은 셀프 넘버 들이다.
>
>
>1번 문제
>
>1 이상이고 5000 보다 작은 모든 셀프 넘버들의 합을 구하라.
>
>
>1번 답 : 1227365

소스코드
$j = 5000; // 한계 값
$ans = 0;
$argm[$j] = 0; // 배열에 self number가 아닌 값 저장
$numb[5] =0; // 각 자리수를 구하기 위한 예비 배열
$i=1; // 시작 값
while($i<=$j){
        for($k=0;$k<=floor(log10($i));$k++){
                $numb[$k] = floor($i/pow(10, $k))*pow(10, $k);
                        }
                $argm[$i] = $numb[0] + ($numb[0] - $numb[1]) + ($numb[1] - $numb[2])/10 + ($numb[2] - $numb[3])/100 + ($numb[3] - $numb[4])/1000;
                $i++;
                }
for($x=1;$x<=$j;$x++){  // self number를 골라냄.
        $chcd=0;
        for($y=1;$y<=$j;$y++){
                if($x==$argm[$y])
                        $chcd=1;
                                }
if(!$chcd)
        $ans = $ans + $x;
}
echo $ans."<br>";


테스트 페이지 : http://suritam9.woweb.net/www/php/counter/ques2.php
박영식 (비회원)
    • 글자 크기
[MFC] 메세지박스, 최소화 시작 (by 박영식) [문제] 구글 입사 문제 (by 박영식)

댓글 달기

박영식
2007.07.08 조회 2358
박영식
2007.06.14 조회 2633
박영식
2007.04.04 조회 5643
박영식
2007.02.16 조회 2443
박영식
2007.02.15 조회 2638
박영식
2006.09.19 조회 1927
박영식
2006.09.14 조회 1973
박영식
2006.09.09 조회 1903
박영식
2006.09.05 조회 1963
박영식
2006.09.01 조회 1575
첨부 (0)
위로