Написать функцию, которая печатает в консоль либо четные, либо нечетные числа от 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);
}