Написать функцию, которая печатает в консоль либо четные, либо нечетные числа от 0 до N

Помогите пожалуйста решить задачу... "Написать функцию, которая в зависимости от своих параметров печатает в консоль либо четные, либо нечетные числа от 0 до N (N тоже сделать параметром функции)." Необходимо написать функцию с двумя аргументами(bool с - булевая переменная для отображения четных или нечетный чисел, int n - число до которого необходимо печатать) Минимизировать количество циклов и условий. Нашел решение через переменные типа int:

int c; int x;
    setlocale(0, "Russian");
    std::cout << "Введите число:";
    std::cin >> x;
    std::cout << "Введите '1' для отображения нечетных чисел, либо - '0' для отображения четных:";
    std::cin >> c;
    for (int a = 0; a <= x; a++)
    {
        if (a % 2 == c)
            std::cout << a << " ";
    }

,но нужно использовать bool. Заранее большое спасибо!


Ответы (1 шт):

Автор решения: lakvak
// ----------Сама функция----------
void foo(bool c, int n) {
    if (c) {
        for (int i = 0; i <= n; i++)
        {
            if (i % 2 == c)
                cout << i << " ";
        }
    } else {
        for (int i = 0; i <= n; i++)
        {
            if (i % 2 == c)
                cout << i << " ";
        }
    }
}
//---------------------------------

int main(int argc, char* argv[])
{
    bool c; int x;
    setlocale(0, "Russian");
    cout << "Введите число:";
    cin >> x;
    cout << "Введите '1' для отображения нечетных чисел, либо - '0' для отображения четных:";
    cin >> c;

    foo(c, x);


    return 0


};

А вот более красивее и компактная реализация функции:

void func_for(bool c, int n) {
    for (int i = 0; i <= n; i++)
    {
        if (i % 2 == c)
            cout << i << " ";
    }
}

void foo(bool c, int n) {
    func_for(c, n);
}
→ Ссылка