Python
 Computer >> コンピューター >  >> プログラミング >> Python

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]
  • 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

  1. 数の最大の素因数を見つけるためのPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 正の整数nが与えられます。数の最大の素因数を見つける必要があります。 アプローチ 指定された数値を数値の約数で割って因数分解します。 最大素因数を更新し続けます。 例 import math def maxPrimeFactor(n):    # number must be even    while n % 2 == 0:       max_Prime = 2       n /= 1  

  2. Pythonのfactorial()

    数値の階乗を見つけることは、Pythonを含むデータ分析やその他の数学的分析で頻繁に必要とされます。階乗は、1から指定された数までのすべての整数を乗算することにより、常に正の整数に対して検出されます。以下に示すように、これを見つけるには3つのアプローチがあります。 Forループの使用 forループを使用して、指定された数まで1番を繰り返し、各ステップで乗算を続けることができます。以下のプログラムでは、ループで使用する前に、数値を入力して入力を整数に変換するようにユーザーに求めています。このようにして、計算で正の整数を確実に取得します。 例 n = input("Enter a nu