Задача
Найдите закономерность и напишите программу, которая выводит аналогичную таблицу для любых чисел [latex]n > 0[/latex] (количество столбцов) и [latex]m > 0[/latex] (количество строк).
Входные данные
Два целых числа: количество столбцов и строк.
Выходные данные
Таблица [latex]m * n[/latex] со следующей закономерностью:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
123+123+123+123+1 +123+123+123+123+ 3+123+123+123+123 23+123+123+123+12 123+123+123+123+1 +123+123+123+123+ 3+123+123+123+123 23+123+123+123+12 123+123+123+123+1 +123+123+123+123+ 3+123+123+123+123 23+123+123+123+12 123+123+123+123+1 +123+123+123+123+ 3+123+123+123+123 23+123+123+123+12 |
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
#include <iostream> #include <cmath> using namespace std; int main(){ int m, n; cin >> m >> n; for (int i = 1; i <= m; i++){ for (int j = 1; j <= n; j++){ cout << (abs(1 + 3*i + j) % 4 == 0 ? '+' : (char)('0' + abs(1 + 3*i + j) % 4)); } cout << endl; } return 0; } |
Тесты
m | n | |||
3 | 4 |
|
||
7 | 7 |
|
||
11 | 11 |
|
Решение
Вводим количество строк [latex]m[/latex] и количество столбцов [latex]n[/latex]. Программа имеет два цикла — один внутри другого. Внешний цикл считывает номер строки, а внутренний — обеспечивает сдвиг. Строки и столбцы чередуются со смещением назад по 4 элемента.
Код
Работает. Зачтено.