C - Repunit Trio Editorial by evima

別解 by 原案者

公式解説の条件の言い換えは今回の制約では不要でしょう。\(13\) 桁以上のレピュニットを考える必要がないことが入出力例で示されているため、\(1, 11, 111, \dots, 111111111111\) から \(3\) つを選ぶ方法をすべて試せば十分です。

実装例(Python)

N = int(input())
L = 12
r = [int("1" * (i + 1)) for i in range(L)]
s = set()
for i in range(L):
    for j in range(L):
        for k in range(L):
            s.add(r[i] + r[j] + r[k])
print(sorted(s)[N - 1])
N = int(input())
L = 12
r = [int("1" * (i + 1)) for i in range(L)]
for i in range(L):
    for j in range(i + 1):
        for k in range(j + 1):
            N -= 1
            if N == 0:
                print(r[i] + r[j] + r[k])

posted:
last update: