Задача
Найдите закономерность и напишите программу, которая выводит аналогичную таблицу для любых чисел [latex] n>0[/latex] (количество столбцов) и [latex]m>0[/latex] (количество строк).
123123123123123123123123123
231231231231231231231231231
132132132132132132132132132
123123123123123123123123123
231231231231231231231231231
132132132132132132132132132
123123123123123123123123123
231231231231231231231231231
Тесты
[latex]m[/latex] [latex]n[/latex] | |
4 3 | 123
231 132 123 |
8 8 | 12312312 23123123 13213213 12312312 23123123 13213213 12312312 23123123 |
10 27 | 123123123123123123123123123 231231231231231231231231231 132132132132132132132132132 123123123123123123123123123 231231231231231231231231231 132132132132132132132132132 123123123123123123123123123 231231231231231231231231231 132132132132132132132132132 123123123123123123123123123 |
Код программы
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <iostream> using namespace std; int main() { int n, m; cin >> m >> n; for(int i=1; i<=m; i++){ for(int j=1; j<=n; j++){ if((i+j)%3==0) cout << 2; else{ if(j%3==0){ if((i+j+1)%3==0) cout << 1; else cout << 3; } else if((j-1)%3==0) cout << 1; else cout << 3; } } cout << endl; } return 0; } |
Решение
Пронумеруем строки от [latex]1[/latex] до [latex]m[/latex] , столбцы — от [latex]1[/latex] до [latex]n[/latex].
1 | 2 | 3 | 4 | 5 | 6 | 7 | … | n | |
1 | 1 | 2 | 3 | 1 | 2 | 3 | 1 | … | … |
2 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | … | … |
3 | 1 | 3 | 2 | 1 | 3 | 2 | 1 | … | … |
4 | 1 | 2 | 3 | 1 | 2 | 3 | 1 | … | … |
5 | 2 | 3 | 1 | 2 | 3 | 1 | 2 | … | … |
6 | 1 | 3 | 2 | 1 | 3 | 2 | 1 | … | … |
7 | 1 | 2 | 3 | 1 | 2 | 3 | 1 | … | … |
… | … | … | … | … | … | … | … | … | … |
m | … | … | … | … | … | … | … | … | … |
Положение символа [latex]2[/latex] определяется однозначно для всей таблицы [latex]\left (n+m \right )\vdots 3[/latex]. В столбцах, где [latex]n\vdots 3[/latex], положение символа [latex]1[/latex] — [latex]\left ( n+m+1 \right )\vdots 3[/latex] , на оставшихся свободных местах — символ [latex]3[/latex] . В столбцах, где [latex]\left ( n-1\right )\vdots 3[/latex], на свободных местах стоит символ [latex]1[/latex]. В оставшихся столбцах на свободных местах стоит символ [latex]3[/latex].
Я, конечно, зачту Вам работу, но предполагалось наличие одной проверки, а не четырёх. Т.к. каждая третья строка строится по другому правилу. Что-то вроде