На мові програмування С/С++
Ответы
Ответ:
#include <iostream>
#include <iomanip> //для красивого виводу в консоль (setw)
#include <vector>
using namespace std;
int main()
{
vector<int> b(81);
for (int i = 0; i < b.size(); i++) b[i] = i + 1; //заповнення вектора
const int rows{ 9 }, cols{ 9 };
int arr[rows][cols]{};
int counter = 0, i{}, j = -1;
while (counter < rows * cols)
{
while (j < cols - 1 && !arr[i][j + 1]) //заповнення вправо
arr[i][++j] = b[counter++];
while (i < rows - 1 && !arr[i + 1][j]) //заповнення вниз
arr[++i][j] = b[counter++];
while (j > 0 && !arr[i][j - 1]) //заповнення вліво
arr[i][--j] = b[counter++];
while (i > 0 && !arr[i - 1][j]) //заповнення вверх
arr[--i][j] = b[counter++];
}
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++) cout << setw(4) << arr[i][j];
cout << endl;
}
return 0;
}
Объяснение:
на малюнку, до речі, помилка, два рази повторюється "55"