Pythonでn個の数値を乗算した後、最後に連続するゼロの数を見つけます
n個の数値を含む配列があるとすると、n個の数値をすべて乗算した後、最後に連続するゼロの数を返す必要があります。
したがって、入力が[200、20、5、30、40、14]の場合、出力は200 * 20 * 5 * 30 * 40 * 14 =336000000として6になり、最後に6つの0があります。
これを解決するには、次の手順に従います-
-
関数count_fact_two()を定義します。これにはn
かかります -
カウント:=0
-
n mod 2が0の場合、実行
-
count:=count + 1
-
n:=n / 2(整数としての商のみ)
-
-
返品数
-
関数count_fact_five()を定義します。これにはn
かかります -
カウント:=0
-
n mod 5が0の場合、実行
-
count:=count + 1
-
n:=n / 5(整数としての商のみ)
-
-
返品数
-
メインの方法から、次のようにします-
-
n:=Aのサイズ
-
2:=0、5:=0
-
0からnの範囲のiの場合、実行
-
twos:=twos + count_fact_two(A [i])
-
ファイブ:=ファイブ+ count_fact_five(A [i])
-
-
2〜5の場合、
-
2を返す
-
-
それ以外の場合
-
5を返す
-
例
理解を深めるために、次の実装を見てみましょう-
def count_fact_two( n ): count = 0 while n % 2 == 0: count+=1 n = n // 2 return count def count_fact_five( n ): count = 0 while n % 5 == 0: count += 1 n = n // 5 return count def get_consecutive_zeros(A): n = len(A) twos = 0 fives = 0 for i in range(n): twos += count_fact_two(A[i]) fives += count_fact_five(A[i]) if twos < fives: return twos else: return fives A = [200, 20, 5, 30, 40, 14] print(get_consecutive_zeros(A))
入力
[200, 20, 5, 30, 40, 14]
出力
6
-
リスト内の最小数を見つけるPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します。 問題の説明 −リストが表示されます。リストで利用可能な最小の番号を表示する必要があります ここでは、リストを並べ替えて最小の要素を取得するか、組み込みのmin()関数を使用して最小の要素を取得できます。 次に、以下の実装の概念を観察しましょう- 例 list1 = [101, 120, 104, 145, 99] # sorting using built-in function list1.sort() print("Smallest element is:", list1[0]) 出力 Smal
-
Pythonを使用して数値の階乗を見つける方法は?
数値の階乗は、1とそれ自体の間のすべての整数の積です。与えられた数の階乗を見つけるために、1からそれ自体までの範囲でforループを形成しましょう。 range()関数は停止値を除外することに注意してください。したがって、停止値は入力数より1大きい値にする必要があります。 範囲内の各数値は、1に初期化される変数fで累積的に乗算されます 例 num=int(input('enter a number')) f=1 for i in range(1,num+1): f=f*i print ('factorial of', num, '='