Divide each difficulty
以下のを受け取っての行列を出力するプログラムの、フィボナッチ数列の解を求める部分を別の関数int fibonatti(int index);
に分離してみよう。
cpp
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
// ここから下を関数に切り分ける
// print (i*j)th of fibonatti sequence
int first = 1, second = 1;
for (int k = 0; k < i*j; k++) {
int next = first + second;
first = second;
second = next;
}
// ここから上を関数に切り分ける
cout << second << " ";
}
cout << endl;
}
}
Hint
下のコードの// ここにフィボナッチ数列の計算を実装しよう
の部分を実装してみよう。
cpp
#include <iostream>
using namespace std;
int fibonatti(int index) {
int first = 1, second = 1;
// ここにフィボナッチ数列の計算を実装しよう
return second;
}
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
int fib_ij = fibonatti(i*j);
cout << fib_ij << " ";
}
cout << endl;
}
}
Answer
cpp
#include <iostream>
using namespace std;
int fibonatti(int index) {
int first = 1, second = 1;
for (int k = 0; k < index; k++) {
int next = first + second;
first = second;
second = next;
}
return second;
}
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
int fib_ij = fibonatti(i*j);
cout << fib_ij << " ";
}
cout << endl;
}
}