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

Pythonですべての桁が減少しないn以下の数を見つけるプログラム


数nがあるとすると、すべての桁が減少しないn以下の最大数を見つける必要があります。

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

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

  • Digits:=nにすべての数字が含まれるリスト
  • バウンド:=null
  • 数字の範囲サイズのiの場合-1から0まで、実行
    • 数字[i]<数字[i-1]の場合、
      • バウンド:=i
      • Digits [i-1]:=Digits [i-1]-1
    • バウンドがnullでない場合、
      • 桁のサイズにバインドされた範囲内のiについては、
        • 桁[i]:=9
  • 各桁を数字で結合して数値を形成し、それを返します

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

サンプルコード

class Solution:
   def solve(self, n):
      digits = [int(x) for x in str(n)]
      bound = None
      for i in range(len(digits) - 1, 0, -1):
         if digits[i] < digits[i - 1]:
            bound = i
            digits[i - 1] -= 1
         if bound:
            for i in range(bound, len(digits)):
               digits[i] = 9
         return int("".join(map(str, digits)))

ob = Solution()
n = 221
print(ob.solve(n))

入力

221

出力

199

  1. リスト内のすべての値がPythonで指定された値より大きいかどうかを確認するプログラム

    このチュートリアルでは、リスト内のすべての要素が数値より大きいかどうかを確認します。たとえば、リストがあります [1、2、3、4、5] リスト内のすべての値が指定された値より大きい場合、 Trueを返します。 それ以外の場合は誤り 。 シンプルなプログラムです。 3分足らずで書けます。最初に自分で試してください。解決策が見つからない場合は、以下の手順に従ってプログラムを作成してください。 リストと任意の番号を初期化します リストをループします。 If yes, return **False** Trueを返します。 例 ## initializing the list  

  2. リスト内のすべての値が指定された値より大きいかどうかを確認するPythonプログラム

    リストが指定され、チェック値が指定されたら、指定された値より大きいすべての値をリストに表示します。 例 Input : A=[10, 20, 30, 40, 50] Given value=20 Output : No Input : A=[10, 20, 30, 40, 50] Given value=5 Output : Yes アルゴリズム Step 1: Create user input list. Step 2: Input checking value. Step 3: Traverse in the list using for loop Step 3.1: compare w