#include <stdio.h>
int c = 0;
int rec(int n) {
c++;
if (n == 1)
return 1;
else if (n == 2)
return 2;
else
return -6 * rec(n - 1) - 9 * rec(n - 2);
}
int main(void) {
int n = 5; // 実行例に合わせるなら5
c = 0; // 念のためリセット
printf("数列a%dの値は%d\n", n
, rec
(n
)); printf("このときrecの呼び出し回数は%d\n", c
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgYyA9IDA7CgppbnQgcmVjKGludCBuKSB7CiAgICBjKys7CgogICAgaWYgKG4gPT0gMSkKICAgICAgICByZXR1cm4gMTsKICAgIGVsc2UgaWYgKG4gPT0gMikKICAgICAgICByZXR1cm4gMjsKICAgIGVsc2UKICAgICAgICByZXR1cm4gLTYgKiByZWMobiAtIDEpIC0gOSAqIHJlYyhuIC0gMik7Cn0KCmludCBtYWluKHZvaWQpIHsKICAgIGludCBuID0gNTsgICAvLyDlrp/ooYzkvovjgavlkIjjgo/jgZvjgovjgarjgok1CgogICAgYyA9IDA7ICAgICAgIC8vIOW/teOBruOBn+OCgeODquOCu+ODg+ODiAogICAgcHJpbnRmKCLmlbDliJdhJWTjga7lgKTjga8lZFxuIiwgbiwgcmVjKG4pKTsKICAgIHByaW50Zigi44GT44Gu44Go44GNcmVj44Gu5ZG844Gz5Ye644GX5Zue5pWw44GvJWRcbiIsIGMpOwoKICAgIHJldHVybiAwOwp9