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