Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.77/64: Рейтинг темы: голосов - 64, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 29.06.2011
Сообщений: 28

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

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

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

заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.09.2011, 21:30
Ответы с готовыми решениями:

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

факториал в с++
Дано целое число N (>0). Вывести сумму 2 + 1/(2!) +1/(3!)+ ... + 1/(N!) Полученное число является приближеным значением константы...

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

3
 Аватар для talis
794 / 546 / 61
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
20.09.2011, 21:36
Лучший ответ Сообщение было отмечено как решение

Решение

Ирина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
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
21.09.2011, 10:30
Цитата Сообщение от Ирина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
21.09.2011, 18:27
Как вариант еще сделать по аналогии нахождения обычного факториала. Только с вашим (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. Ничего особенного, просто еще один вариант нахождения. Удачи!
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.09.2011, 18:27
Помогаю со студенческими работами здесь

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

Факториал
Пользователь вводит число и программа считает его факториал. Например 5! = 5*4*3*2*1 = 120. кто не помнит факториал считает так:...

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

факториал в С++
Как найти факториал с помощью рекурсивной функции?

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru