-
구글 입사 시험.... 나라면.. 과연+_+?Code/C/C++ 2007. 4. 4. 17:49
문제
------------------------------------
양의 정수 n에 대해서 1과 n 사이에 1이 나오는 횟수를 나타내는 함수를 f(n)이라고 한다. 예를 들어 f(13)=6이다.
f(n)=n이 되는 첫번째 양수는 1이다. 두번째 양수는 무엇인가.
--------------------------------------
답을 찾는 프로그램을 C, 파이썬...
코드:
/* c +_+냠냠*/
int N;
int Result;
int POW1, POW2, CNT;N = 1; // 양수 N 시작
while( 1 ) {
++N;
POW1 = 10;
POW2 = 1;
Result = 0;
while( N >= POW1 ) {
Result += (N / POW1 + 1) * POW2;
if( ((N / POW2) % 10) < 1 ) --CNT;POW2 = POW1;
POW1 *= 10;
}
if( N / POW2 == 1 )
Result += (N % POW2)+1;if( N == Result )
break;
}printf("The answer is %d",Result );
#python +_+ 쪽쪽
#!/usr/bin/env python
acc = 1
for n in xrange(2,1000000):
num1 = str(n).count('1')
if num1 > 0 :
acc += num1
if acc == n :
print "answer = ", n
break
나라면... +_+?'Code > C/C++' 카테고리의 다른 글
CAB Code Sign (0) 2009.02.17 열혈강의 C 의 도전프로그래민 1-4번 문제.. 풀어달래서... (0) 2007.09.16 irrlicht 3D엔진 좌표+_+ (0) 2007.04.04 메트릭스+_+ 슝~!!! (0) 2007.04.04