Задача вывести матрицу по спирали из вернего правого угла к центру. Сломал уже всю голову, где ошибка
что выдет программа:
13 21 1
8 55 1
5 3 2
Спираль выводит как надо, но вот после 21 почему- то идет 55, проблема с числами фибоначчи.
Подскажите, где ошибку не вижу
#include <iostream>
using namespace std;
int fib_n(int n)
{
int x = 1;
int y = 0;
for (int i = 0; i < n; i++)
{
x += y;
y = x - y;
}
return y;
}
int main(){
int stolb;
int stroka;
cin >> stolb >> stroka;
int m = 0;
int z = 1;
int a[stroka][stolb];
for(int i = 0; i < stroka; i++){
for(int j = 0; j < stolb; j++){
a[i][j] = 0;
}
}
while(z <= stolb * stroka){
}
for(int i = m + 1; i < stroka - m; i++){ //from top to bottom
a[i][stolb - m - 1] = fib_n(z);
z += 1;
}
for(int i = stolb - m - 2; i > m - 1; i--){
a[stroka - m - 1][i] = fib_n(z);
z += 1;
}
for(int i = stroka - 2 - m; i > 0; i--){
a[i][m] = fib_n(z);
z += 1;
}
for(int i = m; i < stolb - m; i++){
a[m][i] = fib_n(z);
z += 1;
}
m += 1;
}
for(int i = 0; i < stroka; i++){
for(int j = 0; j < stolb; j++){
cout << a[i][j] << " ";
}
cout << endl;
}
}