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