2

配列の長さに基づいてオフセットを計算するアルゴリズムが必要です。各番号の番号を手動で取得しましたが、可能であれば、ケース/スイッチを実行せずに。

配列の長さが与えられた場合、xこれを計算する何かを考え出す必要があります。

20 if x == 5
25 if x == 4
35 if x == 3
50 if x == 2

何か不足していますか?ここでスイッチを使用する必要がありますか?

4

2 に答える 2

6

勝手な推測ですがどう105 div xでしょうか?

それとも多分round(20 / x) * 5

実際には、4 つのケースしか示していないため、さまざまな方法を使用できます。しかし、おそらくもっと重要なことは、コードをより意味のあるものにするために従うことができるパターンはありますか?

于 2013-07-18T04:24:44.440 に答える
3

最初に、(線形) x 関数の結果の間隔が異なるため、マッピング関数が線形でないことを明確にします。

非線形関数を見つけるには、「より難しい」関数補間(Lagrange など) を適用する必要があります。

入力用のこの優れたオンライン ツール[2, 50], [3, 35], [4, 25], [5, 20]を使用した結果は、 (5x^2-55x+190) / 2.

しかし、そのような少数の値について正直に言うと、スイッチを使用します。より効率的で、コードを理解しやすくすることができます (たとえば、1 年かそこらで見た場合 ;-))。

それが役立つことを願っています。

*ヨスト

于 2013-07-18T04:38:28.570 に答える