atcoderの次の問題を解いているのですが、自分の回答だと2つのケースでWAが出てしまいます。
自分で考えても理由が分からないので、教えてくれるとうれしいです。
問題URL
https://atcoder.jp/contests/abc148/tasks/abc148_e
問題文
0 以上の整数 n に対し、 f(n) を次のように定義します。
f(n)=1 (n<2 のとき)
f(n)=nf(n−2) (n≥2 のとき)
整数 N が与えられます。f(N) を 10 進法で表記した時に末尾に何個の 0 が続くかを求めてください。
制約
0≤N≤10^18
↓自分が書いたコード
c++
1#include<math.h> 2#include<iostream> 3typedef long long ll; 4using namespace std; 5 6int main(){ 7 ll N, plus, ans=0; 8 cin >> N; 9 if(N%2 != 0){ 10 cout << 0 << endl; 11 }else{ 12 for(int i=1; i<=(log(N/2)/log(5)); i++){ 13 plus = N/(2*pow(5,i)); 14 ans += plus; 15 } 16 cout << ans << endl; 17 } 18}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/12/27 08:52
2019/12/27 08:54
退会済みユーザー
2019/12/27 09:08 編集
2019/12/27 10:02
退会済みユーザー
2019/12/27 10:25
退会済みユーザー
2019/12/27 10:29
2019/12/27 11:05
2019/12/27 11:46
退会済みユーザー
2019/12/27 11:58
2019/12/28 14:39
退会済みユーザー
2019/12/28 14:56
2019/12/28 15:03
退会済みユーザー
2019/12/28 15:08
2019/12/28 16:41
退会済みユーザー
2019/12/28 16:47
2019/12/28 16:55
退会済みユーザー
2019/12/28 18:42
2019/12/29 10:46
2020/01/01 11:09
退会済みユーザー
2020/01/01 14:24