[アルゴリズム]完全ナビゲーション、Brout Force Backun 2231号-分解


N = int(input())
answer = []

num = 1
for _ in range(1, N):
    num_list = list(map(int, list(str(num))))
    if num + sum(num_list) == N:
        answer.append(num_list)
        break
    else:
        num += 1

if len(answer) == 0:
    print(0)
else:
    answer = ''.join(list(map(str, answer[0]))) 
    print(int(answer))

解法

  • 生成者はNを超えてはならず、Nを基準としてターンゲートを行う.
  • 生成者はnumで、1から.
  • numの各桁をnum_list配列に入れる.
  • 各ビット数とnumの和がNであれば重複文を離れ、そうでなければnum値に1を加えて重複文がNになるまで行う.