(?) 言語のような Brainfuck 言語を実装する必要があります
言語には 5 つのコマンドがあります。
当初、
int x=1; アルゴリズムの実行開始時
各コマンドは、C 言語で次のことを行います。
「+」 : x+=1;
「-」 : x-=1;
">" : x= x*2;
"<" : x= x/2;
「!」: printf("%c",x);
入力は、0 から 127 までの ASCII コードを持つ一連の文字です。
プログラムが入力と同じ文字シーケンスを出力するように、出力は上記のコマンドのシーケンスである必要があります。
出力の長さは最小限にする必要があることに注意してください。
例えば
入力: ABC
出力: >>>>>>+!+!+!
説明: ABC の ASCII コードは 65 66 67 です。
x=1 なので、x は 64 になるまで 6 倍になります。次に、インクリメントして 3 回出力し、すべての ABC を出力します。
これは、x = 65 に到達するために x を 64 回増加させることに比べて最小限です。
この言語を実装する必要があります。
しかし、入力の次の文字に移動するときにコマンドのシーケンスを見つけるアルゴリズムを考え出すことに固執しています。
たとえば、x=8 で 12 に移動する必要がある場合、x を 2 回減らしてから 2 を掛ける方が、4 回足すよりも高速です。数値が十分に大きくなると、アルゴリズムの決定は非常に複雑になります。
多分パスを見つけるために再帰について考えていますか?コマンドの最小数。
ヒントや、参照できるこの難解な言語の名前はありますか?