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

回答編集履歴

1

末尾再帰の効く書き方を追記

2016/01/25 00:46

投稿

yuba
yuba

スコア5570

answer CHANGED
@@ -4,4 +4,16 @@
4
4
  int po(int x, int n){
5
5
  return n > 0 ? x * po(x, n - 1) : 1;
6
6
  }
7
+ ```
8
+
9
+ (1/25追記。末尾再帰が効くようにしてスタックオーバーフローを避ける書き方)
10
+
11
+ ```c
12
+ int po3(int x, int n, int powered) {
13
+ return n > 0 ? po3(x, n - 1, x * powered) : powered;
14
+ }
15
+
16
+ int po(int x, int n) {
17
+ retrun po3(x, n, 1);
18
+ }
7
19
  ```