#include <stdio.h>
//a{n} = -6a{n-1} -9a{n-2}, a{1}=1, a{2}=2(再帰あり版)
int c;
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 ans = rec(n);
printf("数列a%dの値は%d\n", n
, ans
); printf("このときrecの呼び出し回数は%d\n", c
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Ci8vYXtufSA9IC02YXtuLTF9IC05YXtuLTJ9LCBhezF9PTEsIGF7Mn09Mijlho3luLDjgYLjgorniYgpCmludCBjOwoKaW50IHJlYyhpbnQgbil7CgljKys7CglpZiAobiA9PSAxKSB7CiAgICAgICAgcmV0dXJuIDE7IAogICAgfQogICBlbHNlIGlmIChuID09IDIpIHsKICAgICAgICByZXR1cm4gMjsKICAgIH0KICAgIGVsc2V7CiAgICAJCiAgICByZXR1cm4gLTYqcmVjKG4tMSktOSpyZWMobi0yKTsKICAgIH0KCQp9CgppbnQgbWFpbih2b2lkKSB7CiAgICBpbnQgbiA9IDU7IAogICAgaW50IGFucyA9IHJlYyhuKTsKICAgIHByaW50Zigi5pWw5YiXYSVk44Gu5YCk44GvJWRcbiIsIG4sIGFucyk7CiAgICBwcmludGYoIuOBk+OBruOBqOOBjXJlY+OBruWRvOOBs+WHuuOBl+WbnuaVsOOBryVkXG4iLCBjKTsKCXJldHVybiAwOwp9Cgo=