#include <stdio.h>
// グローバル変数(rec の呼び出し回数を数える)
int c = 0;
// 例:a{n} = -6a{n-1} - 9a{n-2}, a1=1, a2=2
int rec(int n){
c++; // rec が呼ばれるたびにカウント
if(n == 1) return 1;
if(n == 2) return 2;
return -6 * rec(n-1) - 9 * rec(n-2);
}
int main(void) {
int n = 5;
int ans = rec(n);
printf("数列a%dの値は%d\n", n
, ans
); printf("このときrecの呼び出し回数は%d\n", c
);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovLyDjgrDjg63jg7zjg5Djg6vlpInmlbDvvIhyZWMg44Gu5ZG844Gz5Ye644GX5Zue5pWw44KS5pWw44GI44KL77yJCmludCBjID0gMDsKCi8vIOS+i++8mmF7bn0gPSAtNmF7bi0xfSAtIDlhe24tMn0sIGExPTEsIGEyPTIKaW50IHJlYyhpbnQgbil7CiAgICBjKys7ICAvLyByZWMg44GM5ZG844Gw44KM44KL44Gf44Gz44Gr44Kr44Km44Oz44OICgogICAgaWYobiA9PSAxKSByZXR1cm4gMTsKICAgIGlmKG4gPT0gMikgcmV0dXJuIDI7CgogICAgcmV0dXJuIC02ICogcmVjKG4tMSkgLSA5ICogcmVjKG4tMik7Cn0KCmludCBtYWluKHZvaWQpIHsKICAgIGludCBuID0gNTsKCiAgICBpbnQgYW5zID0gcmVjKG4pOwogICAgcHJpbnRmKCLmlbDliJdhJWTjga7lgKTjga8lZFxuIiwgbiwgYW5zKTsKICAgIHByaW50Zigi44GT44Gu44Go44GNcmVj44Gu5ZG844Gz5Ye644GX5Zue5pWw44GvJWRcbiIsIGMpOwoKICAgIHJldHVybiAwOwp9Cg==