#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;
printf("数列a%dの値は%d\n", n
, rec
(n
)); printf("この時recが呼び出された回数は%d\n", c
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Ci8vYXtufSA9IC02YXtuLTF9IC05YXtuLTJ9LCBhezF9PTEsIGF7Mn09Mijlho3luLDjgYLjgorniYgpCmludCBjOwoKaW50IHJlYyhpbnQgbil7CgljKys7CglpZihuID09IDEpIHsKCQlyZXR1cm4gMTsKCX0KCWVsc2UgaWYobiA9PSAyKSB7CgkJcmV0dXJuIDI7Cgl9CgllbHNlIHsKCQlyZXR1cm4gLSA2ICogcmVjKG4tMSkgLSA5ICogcmVjKG4tMik7Cgl9Cn0KaW50IG1haW4odm9pZCkgewogICAgaW50IG4gPSA1OwogICAgcHJpbnRmKCLmlbDliJdhJWTjga7lgKTjga8lZFxuIiwgbiwgcmVjKG4pKTsKICAgIHByaW50Zigi44GT44Gu5pmCcmVj44GM5ZG844Gz5Ye644GV44KM44Gf5Zue5pWw44GvJWRcbiIsIGMpOwoJcmV0dXJuIDA7Cn0KCg==