#include <stdio.h>
int main(void) {
int n = 4;
int an_2 = 2; // a_{n-2} (a_1の役割)
int an_1 = 3; // a_{n-1} (a_2の役割)
int an = 0; // a_n
// i=3からnまでループ
for(int i = 3; i <= n; i++) {
// 次の項 a_n を計算
an = 2 * an_1 + an_2;
// 役割の更新(次のループのための準備)
// 以前の a_{n-1} は、次のループでは a_{n-2} になる
an_2 = an_1;
// 新しく計算した a_n は、次のループでは a_{n-1} になる
an_1 = an;
}
// nが2以下の場合を考慮していないが、ここではn=4のa_4を出力
printf("数列a%dの値は%d\n", n
, an
); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKSB7CiAgICBpbnQgbiA9IDQ7CiAgICBpbnQgYW5fMiA9IDI7IC8vIGFfe24tMn0gKGFfMeOBruW9ueWJsikKICAgIGludCBhbl8xID0gMzsgLy8gYV97bi0xfSAoYV8y44Gu5b255YmyKQogICAgaW50IGFuID0gMDsgICAvLyBhX24KCiAgICAvLyBpPTPjgYvjgolu44G+44Gn44Or44O844OXCiAgICBmb3IoaW50IGkgPSAzOyBpIDw9IG47IGkrKykgewogICAgICAgIC8vIOasoeOBrumghSBhX24g44KS6KiI566XCiAgICAgICAgYW4gPSAyICogYW5fMSArIGFuXzI7IAoKICAgICAgICAvLyDlvbnlibLjga7mm7TmlrDvvIjmrKHjga7jg6vjg7zjg5fjga7jgZ/jgoHjga7mupblgpnvvIkKICAgICAgICAvLyDku6XliY3jga4gYV97bi0xfSDjga/jgIHmrKHjga7jg6vjg7zjg5fjgafjga8gYV97bi0yfSDjgavjgarjgosKICAgICAgICBhbl8yID0gYW5fMTsgCiAgICAgICAgCiAgICAgICAgLy8g5paw44GX44GP6KiI566X44GX44GfIGFfbiDjga/jgIHmrKHjga7jg6vjg7zjg5fjgafjga8gYV97bi0xfSDjgavjgarjgosKICAgICAgICBhbl8xID0gYW47CiAgICB9CgogICAgLy8gbuOBjDLku6XkuIvjga7loLTlkIjjgpLogIPmha7jgZfjgabjgYTjgarjgYTjgYzjgIHjgZPjgZPjgafjga9uPTTjga5hXzTjgpLlh7rlipsKICAgIHByaW50Zigi5pWw5YiXYSVk44Gu5YCk44GvJWRcbiIsIG4sIGFuKTsKICAgIHJldHVybiAwOwp9