Печать всех четных или нечетных чисел до заданного N - PullRequest
1 голос
/ 09 марта 2020

Поэтому мне нужно написать рекурсивную функцию printOddEven (int n), которая проверяет, является ли n четным или нечетным, и в зависимости от этого выводит все четные или нечетные числа вплоть до n (для n = 6 его 2 4 6 и для n = 7 его 1 3 5 7). Самое близкое, что я получил к этому, - это сделать функцию printOddEven (int st, int n) с таким кодом:

void printOddEven(int st, int n){   
    if (st > n){return;}
    cout << st << " ";
    printOddEven(st+2, n);
}

Однако мне сказали держать эту функцию зависимой только от n, и я понятия не имею, как это должно выглядеть так. Может ли кто-нибудь помочь мне?

1 Ответ

2 голосов
/ 09 марта 2020

Ваша идея верна, вам просто нужно выполнить итерацию в обратном направлении от n и сделать рекурсивный вызов перед печатью, чтобы отпечатки были в правильном порядке.

На основании вашей попытки:

void printOddEven(int n){   
    if (n < 1) { return; }
    printOddEven(n-2);
    cout << n << " ";
}
...