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

Pythonでカバーできるブロックの数を見つけるためのプログラム


パスにn個のブロックがあり、作業者がブロックに色付きのタイルを置いているとします。作業者は、パス内のブロック番号が4または/および2で割り切れるが、42では割り切れない場合に、色付きのタイルを配置するようにブロックを配置しています。彼がk個の色付きタイルから始めた場合、彼がカバーできるブロックの数を調べる必要があります。

したがって、入力がk =16の場合、出力は32になります。

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

  • MOD =10 ^ 9 + 7
  • 商:=(k / 20)のフロア値
  • 剰余:=k mod 20
  • 余りが0と同じ場合、
    • return((42 * quotient-2)mod MOD)
  • それ以外の場合、
    • return((42*商+2 *剰余)mod MOD)

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

def solve(k):
   MOD = 10**9 + 7
   quotient = k // 20
   remainder = k % 20
   if remainder == 0:
      return ((42 * quotient - 2) % MOD)
   else:
      return ((42 * quotient + 2 * remainder) % MOD)

print(solve(16))

入力

16

出力

32

  1. Pythonでメッセージをデコードできるいくつかの方法を見つけるためのプログラム

    a =1、b =2、...z =26のようなマッピングがあり、エンコードされたメッセージメッセージ文字列があるとすると、デコードできる方法の数を数える必要があります。 したがって、入力がmessage =222の場合、出力は3になります。これは、bbb、bv、vbの3つの方法でデコードできるためです。 これを解決するには、次の手順に従います- memo:=メッセージサイズ+1と同じサイズの0のリスト memo [0]:=1 memo [1]:=1(message [0]が「0」と同じでない場合)それ以外の場合は0 2からメッセージのサイズまでの範囲のiの場合、実

  2. Pythonで収集できるコインの最大数を見つけるためのプログラム

    各セルにいくつかのコインが格納されている2Dマトリックスがあるとします。 [0,0]から始めて、右または下にしか移動できない場合、右下隅で収集できるコインの最大数を見つける必要があります。 したがって、入力が次のような場合 1 4 2 2 0 0 0 5 [1、4、2、2、5] のパスをたどると、出力は14になります。 これを解決するために、次の手順に従います- 範囲1からAの行数までのrについては、次のようにします A [r、0]:=A [r、0] + A [r-1、0] 範囲1からAの列数までのcにつ