#include <stdio.h>
static int count = 0;
// a[n] = -6a[n-1] - 9a[n-2], a[1] = 1, a[2] = 2 (再帰の例題版)
int rec(int n){
count++;
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",count
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgpzdGF0aWMgaW50IGNvdW50ID0gMDsKCi8vIGFbbl0gPSAtNmFbbi0xXSAtIDlhW24tMl0sIGFbMV0gPSAxLCBhWzJdID0gMiAo5YaN5biw44Gu5L6L6aGM54mIKQppbnQgcmVjKGludCBuKXsKCWNvdW50Kys7CiAgICBpZihuID09IDEpewogICAgICAgIHJldHVybiAxOwogICAgfQogICAgZWxzZSBpZihuID09IDIpewogICAgICAgIHJldHVybiAyOwogICAgfQogICAgZWxzZXsKICAgICAgICByZXR1cm4gLTYqcmVjKG4tMSkgLSA5KnJlYyhuLTIpOwogICAgfQp9CgppbnQgbWFpbih2b2lkKXsKICAgIGludCBuID0gNTsKICAgIHByaW50Zigi5pWw5YiXYeOBriVk44Gu5YCk44GvJWRcbiIsIG4sIHJlYyhuKSk7CiAgICBwcmludGYoIuOBk+OBruOBqOOBjXJlY+OBruWRvOOBs+WHuuOBl+WbnuaVsOOBryVkIixjb3VudCk7CiAgICByZXR1cm4gMDsKfQo=