본문 바로가기

오일러프로젝트

[오일러프로젝트] 40번문제


소수점 뒤에 양의 정수를 차례대로 붙여 나가면 아래와 같은 무리수를 만들 수 있습니다.

0.123456789101112131415161718192021...

이 무리수의 소수점 아래 12번째 자리에는 1이 옵니다 (위에서 붉게 표시된 숫자).

소수점 아래 n번째 숫자를 dn이라고 했을 때, 아래 식의 값은 얼마입니까?

d1 × d10 × d100 × d1000 × d10000 × d100000 × d1000000



일단..
무리수라는건 신경쓰지 않고 단순히 숫자를 string으로 붙여나가서면서
원하는 index를 찾아서 계산하였다. 답변 스레드를보니 자리수에 해당하는 수를
가져오는 공식도 있는듯 하다.

처음에는 그냥 0~ 1000000 (index를 맞춰주기 위해서 0부터 돌림)까지 돌려보았는데
python이나 perl에 비해서 ruby가 속도가 엄청나게 느리다.
인터프리터마다 특성이 좀 있는듯...

 

Python
Ruby
Perl
perl은 계속 결과가 0이 나와서 한참을 디버깅하였는데 결국 원인은 $l을 $1로 써서..아놔.... 변수명 잘 지읍시다...ㅠㅠ