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