Форум программистов, компьютерный форум CyberForum.ru

Вычислить n! и n!! - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
isaak
101 / 38 / 9
Регистрация: 17.10.2010
Сообщений: 634
07.11.2010, 14:10     Вычислить n! и n!! #1
Всем доброго время суток, помогите пожалуйста задали написать программы:
1) n! = 1 * 2 * 3 * ... * n
2) n!! = n * (n - 2) * (n - 4) * ...

Вообще не знаю как делать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.11.2010, 14:10     Вычислить n! и n!!
Посмотрите здесь:

C++ Вычислить в одномерном массиве вычислить номер максимального элемента

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lerny
 Аватар для Lerny
56 / 56 / 3
Регистрация: 14.03.2010
Сообщений: 151
07.11.2010, 14:14     Вычислить n! и n!! #2
1)
C++
1
2
3
4
5
6
7
8
9
10
int Factorial(int n)
{
        if((n==0)||(n==1))
        return 1;
 
        int f=1;
        for(int i=1;i<=n;i++)
        f=f*i;
        return f;
}
2) Подумай сам..
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,945
07.11.2010, 14:17     Вычислить n! и n!! #3
isaak, вы уже в который раз создаете темы про ряды, где только формула меняется ? может самому уже понять, что вам пишут в десятый раз.
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.11.2010, 14:18     Вычислить n! и n!! #4
а чему равно 1!! ?

вроде n!! = (n!)! - следовательно 1!! равно одному, так как (1!)! равно (1)! равно 1

а там по формуле получается 1!! = 1 * (1 - 2) * (1 - 4) ... то есть -1 * -3 ...
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,945
07.11.2010, 14:19     Вычислить n! и n!! #5
accept, n!!=1 скорее всего.
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.11.2010, 14:38     Вычислить n! и n!! #6
у него там формула какая-то, что 1!! получается не 1, а либо отрицательное число, либо больше еденицы
KuKu
 Аватар для KuKu
1538 / 1016 / 69
Регистрация: 17.04.2009
Сообщений: 2,945
07.11.2010, 14:40     Вычислить n! и n!! #7
n!! = n * (n - 2) * (n - 4) * ... 1 или 2, ну она какая то такая по идее должна быть
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.11.2010, 14:51     Вычислить n! и n!! #8
допустим 3!! = (3!)! = (6)! = 720
а по его формуле 3!! = 3 * (3 - 2) * (3 - 4) ... и докуда ?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
07.11.2010, 15:00     Вычислить n! и n!! #9
Двойной факториал n - это произведение всех чисел от 1 до n той же чётности, что и n. Т.е. для чётного n это произведение всех чётных чисел от 1 до n (2 * 4 * ... * n), а для нечётного - соответственно нечётных (1 * 3 * ... * n). Таким образом 1!! = 1

Добавлено через 2 минуты
Ну а 3!! = 1 * 3 = 3.
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.11.2010, 15:01     Вычислить n! и n!! #10
wiki. факториал
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
07.11.2010, 15:13     Вычислить n! и n!! #11
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <iostream>
 
int factorial(int n)
{
    for (int i = n - 1; i >= 2; i--)
        n *= i;
 
    return n == 0 ? 1 : n;
}
 
int factorial2(int n)
{
    for (int i = n - 2; i >= 1 + n % 2; i -= 2)
        n *= i;
 
    return n == 0 ? 1 : n; 
}
 
int main()
{
    std::cout << factorial(0) << std::endl
              << factorial(1) << std::endl
              << factorial(2) << std::endl
              << factorial(3) << std::endl
              << factorial(4) << std::endl
              << factorial(5) << std::endl
              << std::endl;
 
    std::cout << factorial2(0) << std::endl
              << factorial2(1) << std::endl
              << factorial2(2) << std::endl
              << factorial2(3) << std::endl
              << factorial2(4) << std::endl
              << factorial2(5) << std::endl;
 
    std::cin.get();
    return 0;
}
accept
4837 / 3236 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
07.11.2010, 15:21     Вычислить n! и n!! #12
C++
1
int f = 1;
это что-то лишнее ?
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
07.11.2010, 15:24     Вычислить n! и n!! #13
Да его уже и нет))) Забыл убрать.

Добавлено через 1 минуту
Можно ещё функции вот так переписать:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int factorial(int n)
{
    for (int i = n - 1; i >= 2; n *= i--);
 
    return n == 0 ? 1 : n;
}
 
int factorial2(int n)
{
    for (int i = n - 2; i >= 1; n *= i, i -= 2);
 
    return n == 0 ? 1 : n; 
}
Yandex
Объявления
07.11.2010, 15:24     Вычислить n! и n!!
Ответ Создать тему
Опции темы

Текущее время: 01:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru