【Netease】2023年秋採用筆記試験(機械学習アルゴリズムポスト) 1.マジックコイン
説明
シャオイーは、マジック アーティファクトを購入するためにマジック キングダムに行きます。マジック アーティファクトを購入するには、マジック コインを使用する必要がありますが、シャオ イーは現在マジック コインを持っていませんが、シャオ イーには x (x は 0) 個のマジック コインを投資することでさらに多くのマジック コインを生成できる 2 台のマジック マシンがあります。
マジック マシン 1: x 個のマジック コインを入れると、マジック マシンは 2x+1 のマジック コインに変えます。マジック マシン 2: x 個のマジック コインを入れると、マジック マシンは 2x+2 のマジック コインに変えます。シャオ イーはマジック アーティファクトを購入するのに合計 n 枚のマジック コインが必要なので、シャオ イーは 2 台の
マジック マシンで正確に n 個のマジック コインしか生成できません。シャオ イーは、最終的にちょうど n 個のマジック コインを獲得できるように、投資計画を立てるのを手伝ってもらう必要があります
。
入力
入力には、Xiao Yi が必要とするマジック コインの数を示す正の整数 n (1 ≤ n ≤ 10^9) を含む 1 行が含まれています。
出力
文字列を出力します。各文字は、Xiaoyi が今回投資することを選択した魔法のマシンを表します。これには文字「1」と「2」のみが含まれます。
サンプル入力
10
サンプル出力
122
問題解決のアイデア:
最初のアイデアは深く探すことです
#include <iostream> 名前空間 std を使用します。 void dfs(string &res, string &path, int sum, int target) { if (sum > target) { path.back(); 戻る; if (sum == ターゲット) { if (res == "") { res = パス; } 戻り値; パス += '1'; dfs(res, パス, 2 * 合計 + 1, ターゲット); パ