#include <stdio.h>
//a{n} = -6a{n-1} -9a{n-2}, a{1}=1, a{2}=2(再帰あり版)
int c=0; //グローバル変数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回です",c
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Ci8vYXtufSA9IC02YXtuLTF9IC05YXtuLTJ9LCBhezF9PTEsIGF7Mn09Mijlho3luLDjgYLjgorniYgpCmludCBjPTA7ICAgIC8v44Kw44Ot44O844OQ44Or5aSJ5pWwY+OBruWuo+iogAppbnQgcmVjKGludCBuKXsKCWMrKzsgICAvL+WRvOOBs+WHuuOBl+OBn+majuaVsOOBruOCq+OCpuODs+ODiAoJaWYobiA9PSAxKXsKCQlyZXR1cm4gMTsKCX0KCWVsc2UgaWYobiA9PSAyKXsKCQlyZXR1cm4gMjsKCX0KCWVsc2V7CgkJcmV0dXJuIC02KnJlYyhuLTEpLTkqcmVjKG4tMik7Cgl9Cn0KIAppbnQgbWFpbih2b2lkKSB7CiAgICBpbnQgbiA9IDU7CiAgICBwcmludGYoIuaVsOWIl2ElZOOBruWApOOBryVkXG4iLCBuLCByZWMobikpOwogICAgcHJpbnRmKCJyZWPplqLmlbDjga7lkbzjgbPlh7rjgZflm57mlbDjga8lZOWbnuOBp+OBmSIsYyk7CglyZXR1cm4gMDsKfQogCg==