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