#include <stdio.h>
//練習問題G
int func(int n){
int a1 = 1, a2 = 2, an; // 初期値
int i;
if (n == 1) return a1;
if (n == 2) return a2;
for (i = 3; i <= n; i++) {
an = -2 * a2 + 2 * a1; // an = -2*a_{n-1} + 2*a_{n-2}
a1 = a2; // 一つ進める
a2 = an;
}
return an;
}
int main(void) {
int n = 4;
printf("数列anについて, n=%dのときの値は%d\n", n
, func
(n
)); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Ci8v57e057+S5ZWP6aGMRwoKaW50IGZ1bmMoaW50IG4pewogICAgaW50IGExID0gMSwgYTIgPSAyLCBhbjsgIC8vIOWIneacn+WApAogICAgaW50IGk7CgogICAgaWYgKG4gPT0gMSkgcmV0dXJuIGExOwogICAgaWYgKG4gPT0gMikgcmV0dXJuIGEyOwoKICAgIGZvciAoaSA9IDM7IGkgPD0gbjsgaSsrKSB7CiAgICAgICAgYW4gPSAtMiAqIGEyICsgMiAqIGExOyAgLy8gYW4gPSAtMiphX3tuLTF9ICsgMiphX3tuLTJ9CiAgICAgICAgYTEgPSBhMjsgIC8vIOS4gOOBpOmAsuOCgeOCiwogICAgICAgIGEyID0gYW47CiAgICB9CgogICAgcmV0dXJuIGFuOwp9CgppbnQgbWFpbih2b2lkKSB7CiAgICBpbnQgbiA9IDQ7CiAgICBwcmludGYoIuaVsOWIl2Fu44Gr44Gk44GE44GmLCBuPSVk44Gu44Go44GN44Gu5YCk44GvJWRcbiIsIG4sIGZ1bmMobikpOwogICAgcmV0dXJuIDA7Cn0K