c++. нужно нарисовать такую матрицу.
где линия там 1-ка. где пусто там 0,-ки.
что нужно прописать в
for(;;) и if() чтобы так заполнить.
поначалу заполняю ноликами. а потом как 1-ками - не могу условие придумать.
где линия там 1-ка. где пусто там 0,-ки.
что нужно прописать в
for(;;) и if() чтобы так заполнить.
поначалу заполняю ноликами. а потом как 1-ками - не могу условие придумать.
#include
#include
void f(int **a, int b, int e, int n) {
for (int c = b; c < e; ++c) {
a[ b][c] = 1; a[b + n - 1][c] = 1;
a[c][ b] = 1; a[c][b + n - 1] = 1;
}
if (n > 1) a[b + 1][ b] = 0;
if (b) a[ b][b - 1] = 1;
if (n - 4 > 0) f(a, b + 2, e - 2, n - 4);
}
int main() {
int n;
std::cout << "n? ";
std::cin >> n;
int **a = new int*[n];
for (int r = 0; r < n; ++r) {
a[r] = new int[n];
std::fill_n(a[r], n, 0);
}
f(a, 0, n, n);
for (int r = 0; r < n; ++r) {
for (int c = 0; c < n; ++c) std::cout << ' ' << (a[r][c] ? '#' : ' ');
std::cout << "\n";
}
return 0;
}
Направление спирали можно поменять изменив строки 5, 6 в функции f