#include <stdio.h>
int c = 0;
int rec(int n) {
c++;
if (n == 1) return 1;
if (n == 2) return 2;
return -6 * rec(n - 1) - 9 * rec(n - 2);
}
int main(void) {
int n = 4;
printf("数列a%dの値は%d\n", n
, rec
(n
));
printf("このときrecの呼び出し回数は%d\n", c
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiAKIAppbnQgYyA9IDA7CiAKIAppbnQgcmVjKGludCBuKSB7CiAgICBjKys7IAogICAgaWYgKG4gPT0gMSkgcmV0dXJuIDE7CiAgICBpZiAobiA9PSAyKSByZXR1cm4gMjsKICAgIHJldHVybiAtNiAqIHJlYyhuIC0gMSkgLSA5ICogcmVjKG4gLSAyKTsKfQogCmludCBtYWluKHZvaWQpIHsKICAgIGludCBuID0gNDsKIAogCiAgICBwcmludGYoIuaVsOWIl2ElZOOBruWApOOBryVkXG4iLCBuLCByZWMobikpOwogCiAKICAgIHByaW50Zigi44GT44Gu44Go44GNcmVj44Gu5ZG844Gz5Ye644GX5Zue5pWw44GvJWRcbiIsIGMpOwogCiAgICByZXR1cm4gMDsKfQ==