Problem 62 - Project Euler
全然思いつかなくて,詰んだとか思ってたけど全然そんなことはなかった.
ベクトルで計算する,大事.forは極力一重で.
最初は1時間くらい回さないと終わらないような状態だったけど,結局4秒くらいでした.
library(gmp) toNum <- function(n){ n <- rev(n) sum(n*10^(0:(length(n)-1))) } toDig.sort.r <- function(n){ a <- as.numeric(sort((strsplit(as.character(n),"")[[1]]))) toNum(rev(a)) } cubes <- (1:10000)^3 cubes <- cubes[!cubes%%10==0] cubes.sorted <- numeric(length(cubes)) for(i in 1:length(cubes)){ cubes.sorted[i] <- toDig.sort.r(cubes[i]) } for(i in cubes.sorted){ if(sum(cubes.sorted==i) == 5) break }