teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

速度について追記

2020/08/22 01:35

投稿

SHOMI
SHOMI

スコア4079

answer CHANGED
@@ -1,11 +1,11 @@
1
1
  maisumakunさんも指摘されているように、再帰呼び出しによるスタックオーバーフローでしょう。
2
2
  再帰呼び出しをループで書き直せば動くはずです。
3
+ 関数呼び出しが減るので高速化にもなります。
3
4
 
4
5
  ```C++
5
6
  // x^a をMODで割った余りを求める
6
7
  long long modPow(long long x, long long a)
7
8
  {
8
-
9
9
  long long ret = 1;
10
10
  x %= MOD;
11
11
  while(0 < a)
@@ -22,7 +22,6 @@
22
22
  return ret;
23
23
  }
24
24
 
25
-
26
25
  // n! をMODで割った余りを求める
27
26
  long long modfactor(long long n)
28
27
  {
@@ -36,5 +35,4 @@
36
35
  }
37
36
  return modfac[n];
38
37
  }
39
-
40
38
  ```