
ДАЮ 30 баллов!!! ПОЖАЛУЙСТА, помогите на С++, именно на языке С++ ограничение по времени на тест:
1 секунда ограничение по памяти на тест: 256 мегабайт ввод: стандартный ввод вывод: стандартный вывод Имеется квадратная матрица, состоящая из n строк и n столбцов. Требуется разделить матрицу на 4 квадрата (n - четное число), n2 и каждый квадрат заполнить числами от 1 до n^2/4 Левый верхний и правый нижний квадраты заполняются горизонтальными меандрами, а правый верхний и левый нижний - вертикальными меандрами (см. пример). Входные данные В единственной строке задано целое число n (2 <= n <= 32) - размер матрицы. Выходные данные Выведите n строк по n чисел в каждой через пробел - необходимую матрицу. Пример входные данные 6 выходные данные 1 2 3 1 6 7 6 5 4 2 5 8 7 8 9 3 4 9 1 6 7 1 2 3 2 5 8 6 5 4 3 4 9 7 8 9

Ответы на вопрос

#include <iostream>
#include <vector>
using namespace std;
void fillMatrix(vector<vector<int>>& matrix, int start, int end, int value) {
for (int i = start; i < end; i++) {
for (int j = start; j < end; j++) {
matrix[i][j] = value++;
}
}
}
void printMatrix(const vector<vector<int>>& matrix) {
int n = matrix.size();
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << matrix[i][j] << ' ';
}
cout << endl;
}
}
int main() {
int n;
cin >> n;
vector<vector<int>> matrix(n, vector<int>(n, 0));
int quarterSize = n / 2;
int startValue = 1;
// Левый верхний квадрат - горизонтальный меандр
fillMatrix(matrix, 0, quarterSize, startValue);
// Правый верхний квадрат - вертикальный меандр
fillMatrix(matrix, 0, quarterSize, startValue + quarterSize * quarterSize);
fillMatrix(matrix, quarterSize, n, startValue);
// Правый нижний квадрат - горизонтальный меандр
fillMatrix(matrix, quarterSize, n, startValue + quarterSize * quarterSize + quarterSize * quarterSize);
fillMatrix(matrix, 0, quarterSize, startValue + 2 * quarterSize * quarterSize);
// Левый нижний квадрат - вертикальный меандр
fillMatrix(matrix, quarterSize, n, startValue + 2 * quarterSize * quarterSize + quarterSize * quarterSize);
fillMatrix(matrix, quarterSize, n, startValue + 3 * quarterSize * quarterSize);
printMatrix(matrix);
return 0;
}



Для решения этой задачи на C++ вам нужно разделить матрицу на 4 квадрата и заполнить их согласно указанным условиям. Вот пример кода:
cpp#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
// Проверка, что n - четное число
if (n % 2 != 0) {
cout << "Размер матрицы должен быть четным числом." << endl;
return 1;
}
vector<vector<int>> matrix(n, vector<int>(n));
// Заполнение верхнего левого квадрата (горизонтальные меандры)
int current = 1;
for (int i = 0; i < n / 2; i++) {
for (int j = 0; j < n / 2; j++) {
matrix[i][j] = current++;
}
}
// Заполнение верхнего правого квадрата (вертикальные меандры)
for (int i = 0; i < n / 2; i++) {
for (int j = n / 2; j < n; j++) {
matrix[i][j] = current++;
}
}
// Заполнение нижнего левого квадрата (вертикальные меандры)
for (int i = n / 2; i < n; i++) {
for (int j = 0; j < n / 2; j++) {
matrix[i][j] = current++;
}
}
// Заполнение нижнего правого квадрата (горизонтальные меандры)
for (int i = n / 2; i < n; i++) {
for (int j = n / 2; j < n; j++) {
matrix[i][j] = current++;
}
}
// Вывод полученной матрицы
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
cout << matrix[i][j] << " ";
}
cout << endl;
}
return 0;
}
Вы можете скопировать этот код в среду разработки C++ и запустить его. Он сначала считывает размер матрицы, затем заполняет квадраты согласно условиям задачи и выводит полученную матрицу.


Похожие вопросы
Топ вопросов за вчера в категории Информатика








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili