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

Pythonで文字列として指定された数値のすべての部分文字列の合計を見つけるプログラム


文字列形式の数値があり、sのすべての部分文字列の合計を見つける必要があるとします。答えは非常に大きい可能性があるため、10 ^ 9+7を法とする結果を返します。

したがって、入力がs ="268"の場合、サブストリングが "2"、 "6"、 "8"、 "26"、 "68"、および "268"であるため、出力は378になります。合計は378です。 。

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

  • M:=10 ^ 9 + 7
  • sum_val:=0
  • B:=1
  • res:=0
  • s-1から0までの範囲サイズのiの場合、1ずつ減らします。
    • res:=(res + s [i] * B *(i + 1)の桁値)mod M
    • sum_val:=sum_val-s[i]の桁値
    • B:=(B * 10 + 1)mod M
  • return res

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

def solve(s):
   M = 10 ** 9 + 7
   sum_val = 0
   B = 1
   res = 0
   for i in range(len(s) - 1, -1, -1):
      res = (res + int(s[i]) * B * (i + 1)) % M
      sum_val -= int(s[i])
      B = (B * 10 + 1) % M
   return res

s = "268"
print(solve(s))

入力

"268"

出力

378

  1. Pythonプログラムで数の偶数因子の合計を見つける

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −数値が与えられているので、数値のすべての偶数因子の合計を表示する必要があります。 アプローチ 数値が奇数かどうかを確認し、偶数の因子がないため、0を返します。 数が偶数の場合、計算を実行します。 20を除く他のすべての項は、偶数の因数の合計を生成するために乗算されます。 偶数因子のすべての奇数を削除するために、1である20を無視します。このステップの後、偶数因子のみを取得しました。 2は私たちが利用できる唯一の素数であることに注意してください。 次に、以下の実装を見てみましょう- 例 # math

  2. 指定された文字列のすべての順列を出力するPythonプログラム

    この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −文字列の可能なすべての順列を表示するために必要な文字列が与えられます。 次に、以下の実装のソリューションを見てみましょう- 例 # conversion def toString(List):    return ''.join(List) # permutations def permute(a, l, r):    if l == r:       print (toString(a))    e