Problem 24
Permutationを使う必要がありますよね.
def facto(n): ans = 1 for i in xrange(1,n+1): ans *= i return ans x = 10 ** 6 -1 k ='' ans = [0,1,2,3,4,5,6,7,8,9] while len(ans) > 0: t = facto(len(ans) - 1) g = x / t p = ans[g] ans.remove(p) x %= t k += str(p) print k
いや…嘘つきじゃないです…とりあえずソートしてあるので順番が小さい順なのもわかっていることなので…コッチのほうが速いんだもん….最初は順列で解いたよ!でも順列のジェネレーター使うの面倒だし.