Задача:. Найдите закономерность и напишите программу, которая выводит аналогичную таблицу для любых чисел [latex]n > 0[/latex] (количество столбцов) и [latex]m > 0[/latex] (количество строк).
-+-+-*-+-+-*-+-+-*-+-+-*-
+-+-*-+-+-*-+-+-*-+-+-*-+
-+-*-+-+-*-+-+-*-+-+-*-+-
+-*-+-+-*-+-+-*-+-+-*-+-+
+*-+-+-*-+-+-*-+-+-*-+-+-
*-+-+-*-+-+-*-+-+-*-+-+-*
-+-+-*-+-+-*-+-+-*-+-+-*-
+-+-*-+-+-*-+-+-*-+-+-*-+
Входные данные:
Количество столбцов [latex]n > 0[/latex] и строк [latex]m > 0[/latex].
Выходные данные:
Таблица размером [latex]n[/latex] [latex]\times[/latex] [latex]m[/latex] аналогичная таблице в условии.
Тесты:
№ | [latex]n[/latex] [latex]m[/latex] | Таблица |
1 | 1 1 | — |
2 |
1 7 | — + — + — * — |
3 | 7 1 | -+-+-*- |
4 | 10 10 | -+-+-*-+-+ +-+-*-+-+- -+-*-+-+-* +-*-+-+-*- -*-+-+-*-+ *-+-+-*-+- -+-+-*-+-+ +-+-*-+-+- -+-*-+-+-* +-*-+-+-*- |
5 | 25 8 | -+-+-*-+-+-*-+-+-*-+-+-*- +-+-*-+-+-*-+-+-*-+-+-*-+ -+-*-+-+-*-+-+-*-+-+-*-+- +-*-+-+-*-+-+-*-+-+-*-+-+ -*-+-+-*-+-+-*-+-+-*-+-+- *-+-+-*-+-+-*-+-+-*-+-+-* -+-+-*-+-+-*-+-+-*-+-+-*- +-+-*-+-+-*-+-+-*-+-+-*-+ |
Код программы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
#include <iostream> using namespace std; int main() { int n, m; // Количество столбцов и строк соответственно cin >> n >> m; for(int i = 0;i < m;i++){ // Цикл для перехода на новую строку for(int j = 0;j < n;j++){ // Цикл вычисления номера члена if(((i+j+1) % 6 == 0)&&((i+j) != 0)){ // Проверка на кратность шести cout << "*"; } else cout << ((i+j+1) % 2 == 0?"+":"-"); // Проверка на кратность двум } cout << endl; } return 0; } |
Алгоритм решения:
Посмотрев на таблицу можно заметить, что знак «-» выводится когда номер члена последовательности нечетный, знак «+» когда четный и знак «*» когда член последовательности кратный 6. После объявления переменных [latex]n[/latex] и [latex]m[/latex](количество столбцов и строк соответственно) создаем два цикла — один внутри другого. Внешний цикл считает номер строки и, после выполнения внутреннего, переносит последовательность на новую строку. Внутренний цикл считает номер столбца и выполняет проверку на кратность шести, в этом случае выводится знак «*». В противном случае проводится проверка на кратность двум. Если номер члена последовательности кратен двум выводиться знак «+», в противном случае — «-«.
Для отправки комментария необходимо войти на сайт.