#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;
int val = rec(n);
printf("数列a%dの値は%d\n", n
, val
); printf("このときrecの呼び出し回数は%d\n", c
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgYyA9IDA7CgppbnQgcmVjKGludCBuKSB7CiAgIAogICAgYysrOwoKICAgIGlmIChuID09IDEpIHsKICAgICAgICByZXR1cm4gMTsKICAgIH0KICAgIGVsc2UgaWYgKG4gPT0gMikgewogICAgICAgIHJldHVybiAyOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgcmV0dXJuIC02ICogcmVjKG4gLSAxKSAtIDkgKiByZWMobiAtIDIpOwogICAgfQp9CgppbnQgbWFpbih2b2lkKSB7CiAgICBpbnQgbiA9IDU7IAogICAgaW50IHZhbCA9IHJlYyhuKTsKICAgIHByaW50Zigi5pWw5YiXYSVk44Gu5YCk44GvJWRcbiIsIG4sIHZhbCk7CiAgICBwcmludGYoIuOBk+OBruOBqOOBjXJlY+OBruWRvOOBs+WHuuOBl+WbnuaVsOOBryVkXG4iLCBjKTsKICAgIAogICAgcmV0dXJuIDA7Cn0K