インタビューで次の質問をされました。これを解決する方法がわかりません。助言がありますか?
ユーザー入力として開始整数と終了整数を指定し、次のプロパティを使用してすべての整数を生成します。
例:
123 , 1+2 = 3 , valid number 121224 12+12 = 24 , valid number 1235 1+2 = 3 , 2+3 = 5 , valid number 125 1+2 <5 , invalid number
インタビューで次の質問をされました。これを解決する方法がわかりません。助言がありますか?
ユーザー入力として開始整数と終了整数を指定し、次のプロパティを使用してすべての整数を生成します。
例:
123 , 1+2 = 3 , valid number 121224 12+12 = 24 , valid number 1235 1+2 = 3 , 2+3 = 5 , valid number 125 1+2 <5 , invalid number
これを達成するためのいくつかの方法は次のとおりです。
入力範囲内のすべての数値をテストして、適格かどうかを確認します。
適格な番号のみを生成します。2つの開始値にネストされたループを使用し、ループインデックスの合計をループインデックスに追加して、修飾番号を算出します。追加された数が上限を超えたら、内部ループを終了します。
2番目の方法は計算効率が高い可能性がありますが、最初の方法は記述と保守が簡単で、O(n)です。
面接官が何を求めているのかはわかりませんが、答えよりもコミュニケーション能力の方が重要だと思います。
この問題を解決する素朴な方法は、設定された範囲内の数値を繰り返し、数値を数字のシーケンスに解析してから、ルールに従ってシーケンスをテストすることです。2つの変数またはレジスタを使用してそれらを順番に追加できるように、問題は基本的にフィボナチ数を見つけるように要求するという最適化があります。
コンポーネント番号が同じ桁数でなければならないかどうかは、あなたの質問からは明らかではありません。そうでない場合は、コンポーネント番号の配置のすべての組み合わせを生成する必要があります。