441.コインを並べる(Python)

623 ワード

タイトル
難易度:★☆☆☆☆タイプ:数学
全部でn枚のコインがあります.階段の形にする必要があります.k行目にはちょうどk枚のコインが必要です.
1つの数字nが与えられ、完全なステップ行を形成できる総行数が見出される.
nは非負の整数であり、32ビットのシンボル整数の範囲内である.

例1:n=5硬貨は、3行目が不完全であるため、2を返すように配列することができる.
例2:n=8硬貨は、4行目が不完全であるため、3行目に戻るように配列することができる.
に答える
これは中学校のテーマで、等差数列の和と一元二次方程式の解に関連しています.
m列を満たすために必要なコインの数は:
仮にn枚のコインがあるとしたら、
mがゼロより大きい制限条件を加えて、解く
ここでのmは小数である可能性があり、完全な最後の行を構成していないことを説明します.この場合、mを下に整列する必要があります.すなわち、構成可能な最大行数です.
class Solution:
    def arrangeCoins(self, n: int) -> int:
        return int(((1+8*n)**0.5-1) / 2)

質問やアドバイスがあれば、コメントエリアへようこそ~