Problem 40 - Project Euler
やっぱ多少は考えてから書き始めるべき。
toDigits <- function(n){ if(n < 10) return(n) rev(floor(n/(10^(0:floor(log(n,10)))))%%10) } digits <- 10^(1:6) ans <- 1 for(i in digits){ num <- i m <- 9 d <- 1 while(num > m){ num <- num - m d <- d+1 m <- 10^(d-1)*d*9 } ans <- ans * toDigits(10^(d-1) + ceiling(num/d) - 1)[(num%%d)] }