ループメニュー2】> 【約数の列挙】STEP: 10 階乗の末尾に 0 はいくつ付く? (paizaランク C 相当) [難易度: 1448 ±28]

※リンク先へ移動するためには[paiza]へのログインが必要です。

09-02-10-01
問題文

整数 N が与えられます。
N の階乗 N! の末尾に 0 がいくつ付くか求め、出力してください。

入力値(例)
100

出力値(例)
24

解答例

09-02-10-02

解説

階乗とは、1からある数までの連続する整数の積のことです。

整数5の場合、
5! = 5*4*3*2*1 = 120 となります。

階乗の表(外部リンク)を見ると、5!以降は末尾に0が付くようになります。

そしてその法則は以下のようになります。

①末尾に並ぶ0の個数はn!におけるnが5の倍数のときその直前より増える。

②5の倍数からその4つ先までは0の個数は変化しない。

③5の倍数,たとえば5,10,15,20のときはその直前よりも末尾に並ぶ0の個数が1個だけ多くなるが,25のときはその直前よりも2個だけ多くなる。

④全体を眺めれば,25,50,75,100という5の倍数のとき(青)の階乗における末尾に並ぶ0の個数はその直前よりも2個だけ多くなるが,それ以外の5の倍数(赤)の階乗における末尾に並ぶ0の個数はその直前よりも1個だけ多くなる。

ですので、入力値nを(5**$i)で割り続ければゼロの数が数えられるということです。

【外部リンク】啓林館-アクティブラーニングの一例~階乗の表から学ぶn!の末尾に並ぶ0の個数~

感想

ですので、とか言っていますが、自分でなんでだか分からなくなってしまったので、もう少し考えます。( TДT)ゴメンヨー

おすすめの記事
スポンサーリンク