F(x)は、xの端部におけるゼロの数とします!(= * 3 * 2 1 * ... * X!そのXを思い出し、そして慣例により、0!= 1)
例えば、fは(3)0ので、3を=!= 6は、末尾にゼロを有していない一方、F(11)= 2 11なぜなら!= 39916800は、端部において2ゼロを有しています。Kを考えると、xはf(x)が= K.性質を持っているどのように多くの非負整数見つけます
実施例1:
入力:K = 0
出力:5
説明:0!1!2!3!と4!K = 0ゼロで終わります。
例2:
入力:K = 5
出力:0
説明:Xように、xはありません!K = 5ゼロで終わります。
注意:
Kは、範囲[0、10 ^ 9]内の整数です。
行うためのアイデアの質問によって、明確に階乗数0数回5つの変化(0〜4,5〜...... 9)、および場合、N、F(N)= Kがある場合は、必要に見つけること5が返される存在である、ゼロへの復帰はありません。先頭からN> = 4K、4Kの数学的な導出、F(N)まで毎に5ずつ> = K.
クラスのソリューション(オブジェクト): preimageSizeFZFデフ(自己、K): "" " :タイプK:INT :RTYPE:int型 """ #5 または0 DEF getZeroes(N): リターン0であれば、他のn <5 N / 5 + getZeroesは、(N / 10) = 4×K開始 ゼロ= getZeroes(スタート) :ゼロ<Kながら 起動+ = 5 ゼロ= getZeroes(開始) 戻り5ゼロ==他K 0の場合