Вычислить двойной факториал, используя цикл do while

Помогите мне!
Дано целое число N (> 0). Найти двойной факториал N: N!! = N(N-2)(N-4)*... (последний сомножитель равен 2, если N — четное, и 1, если N — нечетное).

int n; // n - двойной факториал

setlocale(0,""); // русификация

cout << "Введите число n = \n"; // вывод сообщения на экран

cin >> n;

do

{ // выполняется цикл

if (n == 2) // если

{

n += 2;

n = 2 * n;

}

else // иначе

if (n == 1) // если

{

n++;

n = 2 * n + 1;

}

}

while (n > 0);

cout << "Двойной факториал n = " << n << endl;

system("pause");

return 0;

}

По-моему будет что-то типа такого:

long n, fuck2 = 1L;  // fuck2 <- n!!
cin >> n;
do {
    fuck2 *= n;
    n -= 2;
} while (n > 2);
cout << fuck2 << endl;

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.