三角形の番号と、指定された数値「num」よりも大きい最小の三角形の数を見つける方法について説明します。まず三角関数とは何かについて説明し、次に「num」より大きい最小の三角関数を見つけてみましょう
同じ問題に対する 2 つの異なるアプローチを見ていきます。最初の方法では単純なループを実行して出力を生成しますが、2 番目の方法では、最初に必要な数を計算するための一般的な式を生成し、その式を直接適用して最小の三角形の数を取得します。 p> ###問題文###
ボールが入った箱が複数あります。ボックスに含まれるボールの数は、すべてのボックスで異なる三角数になります。ボックスには 1 から n までの番号が付けられます。箱から「num」個のボールを取り出した後、どの箱に最小数のボールが含まれるかを調べる必要があります。
例を通してこれを理解しましょう
リーリー5 つのボールを取り出した後、どのボックスにボールの数が最も少ないかを調べなければなりません
リーリーこの例の解決策 -
リーリー三角数とは何ですか?
三角形番号の n 番目の行には n 個の点が含まれていることがわかっているため、三角形番号は各行の点の合計として表すことができます。また、n 番目の三角数には n 行があることもわかっているため、n 番目の三角数は最初の n 個の自然数の和で与えられます。
方法 1: (直接方法)
三角数の場合は、既存の (n-1) 番目の三角数に n を加算して、次の三角数の値を計算します。 ###アルゴリズム###
ステップ 1
ステップ 2
ステップ 3
ステップ 4
###例### C でのこのメソッドの実装は次のとおりです -
リーリー ###出力### リーリーn 番目のボックス番号の三角形番号は、次の式で求められます -
リーリーこの方程式を使用すると、
が得られます。 リーリー ###例###このメソッドのコードを以下に示します -
リーリー ###出力### リーリー このメソッドの時間計算量- O(logn)
スペースの複雑さこの記事では、指定された数値「num」よりも大きい三角形の最小数を見つけるための 2 つの異なる方法について説明しました。最初の方法は、ループを実行し、反復ごとに n を加算することによって三角関数の数を単純に計算します。また、指定された数値と三角関数の数値の差も計算しました。 2 番目のアプローチでは、目的の出力を計算するための数式を生成します。
以上がp より大きい最小の三角数の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。