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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 20, средняя оценка - 4.95
Ирина123
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 28
#1

факториал (2k+1)!с++ - C++

20.09.2011, 21:30. Просмотров 2658. Ответов 3
Метки нет (Все метки)

помогите пожалуйста посчитать факториал (2k+1)!
и если возможно с построчными комментариями

заранее спасибо!
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2011, 21:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос факториал (2k+1)!с++ (C++):

Описать рекурсивные функции вещественного типа, вычисляющие факториал и двойной факториал заданного числа - C++
Описать рекурсивные функции Fact(N) и Fact2(N) вещественного типа, вычисляющие значения факториала N! и двойного факториала N!!...

С++ Факториал - C++
Надо написать программку на С++ которая вычисляет факториал числа n (факториал обозначается как n!). числа n в диапазоне от 1 до 12...

Факториал - C++
Здравствуйте Всем!!! Меня зовут Наталья. Помогите решить задание на С++: Дано натуральное число n; найти n!. Использовать программу,...

Факториал с++ - C++
1. Ввести n элементов одномерного массива; 2. Вычислить указанное выражение; 3. Вывести на экран значение указанного выражения.

Факториал - C++
Как написать программу для вычисления n факториал

Факториал - C++
Помогите написать программу: Составить функцию, которая вычисляет сумму К слагаемых. В вызывающей функции main() организовать контроль...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
talis
791 / 543 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
20.09.2011, 21:36 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ирина123,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
int main()
{
    int k;
 
    cout << "> ";
    cin >> k;
 
    // число очень большого диапазона
    unsigned long long factorial = 1;
 
    // вычисляем факториал
    for( int i = 1; i <= (k*2 + 1); i++ )
       factorial *= i;
 
    // выводим
    cout << "Factorial (2 * " << k << " + 1) = " << factorial << '\n';
 
    return 0;
}
Что непонятно - спрашивайте.
3
-=ЮрА=-
Заблокирован
Автор FAQ
21.09.2011, 10:30 #3
Цитата Сообщение от Ирина123 Посмотреть сообщение
помогите пожалуйста посчитать факториал (2k+1)!
и если возможно с построчными комментариями
- вот 2 способа (рекурсия и вычисления в цикле)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <iostream>//i/o
#include <conio.h>  //getch
 
using namespace std;
 
 
//Руссификация
ostream& operator<<(ostream &stream,char* s){
        for(char* ps=s; *ps; ps++){
                if(*ps=='ё')
                        stream<<char(241);
                else if(*ps=='Ё')
                        stream<<char(240);
                else if(*ps>=-64 && *ps<=-17)                   
                        stream<<char(*ps+64+128);
                else if(*ps<0)
                        stream<<char(*ps+64+176);
                else
                        stream<<*ps;
        }
        return stream;
}
 
unsigned long factorial(unsigned long val);
unsigned long factorial2(unsigned long val);
 
int main()
{
    unsigned long N;
    do
    {
        std::cout<<"Введите число : ";
        std::cin>>N;
        std::cout<<N<<"! = "<<factorial(N)<<"\r\n";
        std::cout<<"Вычисление факториала без рекурсии : ";
        std::cout<<N<<"! = "<<factorial2(N)<<"\r\n";
        std::cout<<"Нажмите Y для нового ввода\r\n";
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
 
unsigned long factorial(unsigned long val)
{
    unsigned long ret = val;
    if(1 < (val--))//Рекурсия
        ret *= factorial(val);
    return ret;
}
 
unsigned long factorial2(unsigned long val)
{
    unsigned long ret = val;
    for(long i = 1; i < val; i++)
        ret *= i;
    return ret;
}
0
GoriZonTT
Сообщений: n/a
21.09.2011, 18:27 #4
Как вариант еще сделать по аналогии нахождения обычного факториала. Только с вашим (2k+1).

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
#include <iostream>
 
using namespace std;
 
int main()
{
    int i,f,n, k; // здесь i выполняет функцию счетчика, f - значение факториала,
                //n - от какого числа находим факториал, k - используется в формуле
                //для нахождения числа, от которого находим факториал
    f=1; // начальное значение факториала равно 1
    cin >> k; // вводим k для того, чтобы подставить в формулу
    n = 2*k+1; // находим n - число от которого ищем факториал
                //(в вашем случае факториал от числа: 2*k+1)
    if (n<=0) cout << "N Error"; // если найденное по формуле выше n<=0
                                //факториал не ищется и выводим ошибку
    else //в ином случае
    {for (i=1; i<=n; i++)//в цикле от i=1 до n равное 2*k+1 выполняем
    {
        f=f*i;       //умножаем значение факториала в цикле на значение i
    }                //Увеличивается i (i++ - инкремент, аналог i=i+1).
                    //Цикл повторяется пока i не станет равным числу n
    cout << f; //вывод полученного результата
    }
    return 0;
}
Иначе говоря если вы замените
C++
1
2
 cin >> k;
n = 2*k+1;
на
C++
1
cin >> n;
то будет находиться просто факториал от числа n. Ничего особенного, просто еще один вариант нахождения. Удачи!
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2011, 18:27
Привет! Вот еще темы с ответами:

факториал - C++
найти число нулей в конце факториала числа N по основанию каждого множителя K (1&lt;=N&lt;=1000000000, 2&lt;=K&lt;=1000) #include &lt;iostream&gt; ...

Факториал - C++
Пожалуйсто, помогите написать прогу на Си, которая вичисляла бы 100! (факториал) выводя всё на экран!

Факториал (n-1)! - C++
Помогите, пожалуйста, написать факториал (n-1)! очень надо

Факториал - C++
Дано натуральное число n; найти n!. Использовать программу, включающую рекурсивную процедуру вычисления n!


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.09.2011, 18:27
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru