ホームページ > バックエンド開発 > C++ > p より大きい最小の三角数

p より大きい最小の三角数

王林
リリース: 2023-09-20 19:13:02
転載
1282 人が閲覧しました

p より大きい最小の三角数

三角形の番号と、指定された数値「num」よりも大きい最小の三角形の数を見つける方法について説明します。まず三角関数とは何かについて説明し、次に「num」より大きい最小の三角関数を見つけてみましょう

同じ問題に対する 2 つの異なるアプローチを見ていきます。最初の方法では単純なループを実行して出力を生成しますが、2 番目の方法では、最初に必要な数を計算するための一般的な式を生成し、その式を直接適用して最小の三角形の数を取得します。 p> ###問題文###

"num" よりも大きい三角形の最小数を見つけなければなりません。

ボールが入った箱が複数あります。ボックスに含まれるボールの数は、すべてのボックスで異なる三角数になります。ボックスには 1 から n までの番号が付けられます。箱から「num」個のボールを取り出した後、どの箱に最小数のボールが含まれるかを調べる必要があります。

例を通してこれを理解しましょう

リーリー

5 つのボールを取り出した後、どのボックスにボールの数が最も少ないかを調べなければなりません

リーリー

この例の解決策 -

リーリー

三角数とは何ですか?

三角形の数字は、正三角形のグリッドの形式で表現できる数字です。行内のポイントの数は常に行番号と等しくなります。つまり、最初の行には 1 ポイントが含まれ、2 番目の行には 2 ポイントが含まれます。いくつかの三角形の数字は次のとおりです: 1、3、6、10、15…。ここで、n 番目の三角数の公式を導き出してみましょう -

三角形番号の n 番目の行には n 個の点が含まれていることがわかっているため、三角形番号は各行の点の合計として表すことができます。また、n 番目の三角数には n 行があることもわかっているため、n 番目の三角数は最初の n 個の自然数の和で与えられます。

方法 1: (直接方法)

このメソッドでは、ループを実行して、指定された数値と n 番目の三角関数数値の差を計算します。差が >= 0 になった場合、目的のボックス番号が得られます。したがって、切り捨てます。ループ。

三角数の場合は、既存の (n-1) 番目の三角数に n を加算して、次の三角数の値を計算します。 ###アルゴリズム###

ステップ 1
    - 変数トライアングル番号を 0 に初期化します。
  • ステップ 2
  • - for ループを実行し、反復ごとに n を追加し続けます。
  • ステップ 3
  • - 三角形の番号と指定された数値「num」の差の計算を続けます。
  • ステップ 4
  • - 差が >=0 になったら、n を目的のボックス番号として出力します。
  • ###例### C でのこのメソッドの実装は次のとおりです -

    リーリー ###出力### リーリー
  • 方法 2: 数式ベースの方法

この方法では、まず必要な数を計算するための一般式を生成し、次にその式を直接適用して、指定された数よりも大きい三角形の最小数を取得します。

n 番目のボックス番号の三角形番号は、次の式で求められます -

リーリー

三角形の数 >= num となる最小のボックス番号 "n" を取得します。

リーリー

これは、解決する必要があることを意味します -

リーリー

この方程式を使用すると、

が得られます。 リーリー ###例###

このメソッドのコードを以下に示します -

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

このメソッドの時間計算量

- O(logn)

スペースの複雑さ

- 一定の追加スペースのみを使用するため、O(1)。

この記事では、指定された数値「num」よりも大きい三角形の最小数を見つけるための 2 つの異なる方法について説明しました。最初の方法は、ループを実行し、反復ごとに n を加算することによって三角関数の数を単純に計算します。また、指定された数値と三角関数の数値の差も計算しました。 2 番目のアプローチでは、目的の出力を計算するための数式を生成します。

以上がp より大きい最小の三角数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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