Pythonで2倍の最大数
番号のリストがあるとします。最大数が2番目に大きい数より2倍以上大きいかどうかを確認する必要があります。たとえば、リストが[3、9、6]のような場合、9は12(2 x 6)より大きくないため、falseが返されます。リストが[6、3、15]の場合、15は12(2 x 6)より大きいため、trueが返されます。
これを解決するには、次の手順に従います-
- numsのサイズが2未満の場合、
- Falseを返す
- p_max:=nums[0]とnums[1]の最小値
- c_max:=nums[0]とnums[1]の最大値
- 2からnumsのサイズのiの場合は、
- nums [i]> p_maxの場合、
- nums [i]> c_maxの場合、
- p_max:=c_max
- c_max:=nums [i]
- それ以外の場合、
- p_max:=nums [i]
- nums [i]> c_maxの場合、
- nums [i]> p_maxの場合、
- return c_max> p_max * 2
理解を深めるために、次の実装を見てみましょう-
例
class Solution: def solve(self, nums): if len(nums) < 2: return False p_max = min(nums[0], nums[1]) c_max = max(nums[0], nums[1]) for i in range(2, len(nums)): if nums[i] > p_max: if nums[i] > c_max: p_max = c_max c_max = nums[i] else: p_max = nums[i] return c_max > p_max * 2 ob = Solution() nums = [3,6,15] print(ob.solve(nums))
入力
[3,6,15]
出力
None
-
数の最大の素因数を見つけるためのPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 正の整数nが与えられます。数の最大の素因数を見つける必要があります。 アプローチ 指定された数値を数値の約数で割って因数分解します。 最大素因数を更新し続けます。 例 import math def maxPrimeFactor(n): # number must be even while n % 2 == 0: max_Prime = 2 n /= 1
-
Pythonのfactorial()
数値の階乗を見つけることは、Pythonを含むデータ分析やその他の数学的分析で頻繁に必要とされます。階乗は、1から指定された数までのすべての整数を乗算することにより、常に正の整数に対して検出されます。以下に示すように、これを見つけるには3つのアプローチがあります。 Forループの使用 forループを使用して、指定された数まで1番を繰り返し、各ステップで乗算を続けることができます。以下のプログラムでは、ループで使用する前に、数値を入力して入力を整数に変換するようにユーザーに求めています。このようにして、計算で正の整数を確実に取得します。 例 n = input("Enter a nu