Official

B - Fibonacci Reversed Editorial by yuto1115

解説

基本的には問題文に書かれた通りの方法で \(a_3,a_4,\dots,a_{10}\) を順番に求めていけばよいですが、実装にあたっては整数と文字列の相互変換や文字列の反転が必要になります。これらは自力で (for 文等を用いて) 実装することも難しくはないですが、多くのプログラミング言語においては標準機能として元から実装されているため、それらを用いるのが手軽です。C++ および Python に関しては下記の実装例を参考にしてください。

答えは 32 bit 整数型 (C++ における int 型など) に収まらない可能性があることに注意してください。

実装例 (C++, Python) :

#include <bits/stdc++.h>

using namespace std;

int main() {
    vector<long long> a(10);
    cin >> a[0] >> a[1];
    for (int i = 2; i < 10; i++) {
        string s = to_string(a[i - 2] + a[i - 1]);
        reverse(s.begin(), s.end());
        a[i] = stoll(s);
    }
    cout << a[9] << endl;
}
a = [0] * 10
a[0], a[1] = map(int, input().split())

for i in range(2, 10):
    s = str(a[i - 2] + a[i - 1])
    a[i] = int(s[::-1])
  
print(a[9])

posted:
last update: