ホームページ > バックエンド開発 > C++ > 2 次元平面上で、原点から点 (d, 0) に到達するまでに必要なジャンプの回数

2 次元平面上で、原点から点 (d, 0) に到達するまでに必要なジャンプの回数

王林
リリース: 2023-09-05 22:41:06
転載
1342 人が閲覧しました

在二维平面上,从原点到达点(d, 0)所需的跳跃次数

この記事では、エキサイティングな分析問題、つまり点 (d, 0) に到達するために必要なジャンプの数に対する考えられる解決策について説明します。固定ジャンプ長とターゲット座標を使用して、必要な最小ジャンプ数を見つけます。

入力シナリオと出力シナリオ

ジャンプの長さが a または b で、ターゲット ポイントが (d,0) であると仮定します。指定された出力は、ゴールに到達するために必要な最小ジャンプ数になります。

リーリー

2D 平面の原点 (0, 0) に立っているとします。ターゲット座標は (d, 0) です。ターゲット座標に到達する唯一の方法は、固定長ジャンプを行うことです。あなたの目標は、最小限のジャンプ回数で目標に到達する効率的な方法を見つけることです。

If ステートメントを使用する

if ステートメントを使用して、(d, 0) に到達するために必要な最小ジャンプ数を見つけます。

  • まず、a が常に b より大きいことを確認する必要があります。これにより、a はより長いジャンプ長を表し、b b> はジャンプ長を表します。ジャンプの長さが短くなります。したがって、b > a, の場合、ab の最大値を a に代入します。

  • 次に、d が a 以上であるかどうかを確認します。この条件が満たされている場合は、(d a - 1) / a を使用して最小ジャンプ数を単純に計算できます。ここで、(d a - 1) は、ジャンプ長さ「a」の合計距離を a (つまり、各ジャンプの長さ) で割った値を意味します。ジャンプします。

  • d = 0 の場合、ジャンプは必要ありません。

  • d = b の場合、b の長さをジャンプすることでポイントに直接到達できます。

  • d > b および d の場合、ジャンプの最小数は 2 です。これは、X が原点、Z が目標点、Y が XY = YZ = max(a, b) を満たす点となるような三角形 XYZ を取る場合に、そのためです。 この場合、最小ジャンプは 2、つまり XX から Y へ、および Y から Z になります。

###例### リーリー ###出力### リーリー

除算演算子と剰余演算子を使用する

#a

または

b

の値が

0 の場合、単純に除算演算子と剰余演算子を使用して最小ジャンプ数を見つけることができます。ここでは、距離 d をホップ長で割って (ホップ長の 1 つが 0 であるため)、ホップ数を取得します。 ###例### リーリー ###出力### リーリー Note - 三項演算子を使用してコードを簡潔に記述することもできます。 リーリー ###結論は###

2D 平面内の原点からターゲット ポイント (d, 0) に到達するために必要な最小ジャンプ数を見つける方法について説明しました。 if ステートメントを使用して、

a

および

b

がゼロ以外の値 (

a および b

) であるジャンプの数を見つけます。はジャンプの長さです)。

a

または

b がゼロの場合、除算演算子と剰余演算子を使用できます。コードを簡潔に記述するには、三項演算子を使用できます。

以上が2 次元平面上で、原点から点 (d, 0) に到達するまでに必要なジャンプの回数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート