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

Pythonで数値を最大にするために5を挿入


数nがあるとすると、その数のどこかに5を挿入して、作成できる最大数を見つける必要があります。

したがって、入力がn =826のような場合、出力は8526になります。

これを解決するには、次の手順に従います-

  • temp:=nを文字列として
  • ans:=-inf
  • 0からtempのサイズまでの範囲のiについては、
    • cand:=インデックス0からiまでのtempのサブストリング「5」を連結します。インデックスiからendまでのtempのサブストリングを連結します
    • iが0と同じで、temp[0]が'-'と同じ場合、
      • 次の反復に進む
    • ans:=ansの最大数、およびカンド数
  • 回答を返す

理解を深めるために、次の実装を見てみましょう-

class Solution:
   def solve(self, n):
      temp = str(n)
      ans = float('-inf')
      for i in range(len(temp) + 1):
         cand = temp[:i] + '5' + temp[i:]
         if i == 0 and temp[0] == '-':
            continue
            ans = max(ans, int(cand))
      return ans
ob = Solution()
print(ob.solve(826))

入力

826

出力

8526

  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