task 4.6

 avatar
unknown
c_cpp
2 years ago
1.6 kB
7
Indexable
#include <iostream>

using namespace std;

void printChar(char ch, int number) {
    for (int i = 0; i < number; ++i) {
        cout << ch;
    }
}

int main() {
    const int rowsNum = 5; // общее количество строк

    // Общее кол-во столбцов можно бы и задать тупо цифрой, но можно и вычислить:
    // нижняя строка состоит целиком из единиц, верхняя - целиком из нулей; каждая последущая строка имеет по две новых единицы -
    // поэтому два умножаем на количество строк, в которых есть единицы (это четыре строки из пяти).
    const int columnsNum = 2 * (rowsNum - 1);

    for (int i = 0; i < rowsNum; ++i) { // перебираем номера строк сверху вниз
        // выводим i-ю строку
        int charNumber = i*2; // столько раз на этой строке будет фигурировать единичка
        int zeroNumber = columnsNum - charNumber; // а столько получается нулей
        printChar('0', zeroNumber); // выводим сразу нужное количество нулей
        printChar('1', charNumber); // дописываем справа нужное количество единиц
        cout << endl; // переносим строку
    }
    return 0;
}
Editor is loading...