[python]バックアップアルゴリズム#2231


📝 質問する


ある自然数Nがある場合、その自然数Nの分解とは、NとNの各ビット数の和を意味する.ある自然数Mの分解とNであれば、MはNの生成者である.例えば、245の分解は256(=245+2+4+5)である.したがって、245は256の生成者となる.もちろん、いくつかの自然数の場合、構造関数がない可能性があります.逆に,生成者が複数ある自然数もある.
自然数Nが与えられた場合,Nの最小生成者を解くプログラムを作成する.

入力


第1行は自然数N(1≦N≦1000000)を与える.

🖨 しゅつりょく


最初の行に答えを印刷します.ジェネレータがない場合は0を出力します.

入力#の例

216

🖨 サンプル出力

198

📚 私が提出したコード

n = int(input())
result = 0
for m in range(1, n + 1):
  mArr = list(map(int, str(m)))
  sum = m
  for i in mArr:
    sum += i
  if sum == n:
    result = m
    break
print(result)

▼▼私が提出したコードの説明

  • ルーティングアルゴリズム:可能な限りすべての可能な状況を直接試します(ある意味では無知な方法かもしれませんが、精度は100%かもしれません).
  • input():キーボード入力値を受け入れる関数
  • range(a,b):aからb-1までの整数のリストを含む関数
  • を返します.
  • map(a,b):関数
  • は、bの各要素をaに代入することを返します.
  • メモリ:29200 KB
  • 時間:1956 ms
  • コード長:179 B