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

Составить программу для вычисления суммы: 1!+2!+3!+

27.04.2022, 16:18. Показов 1457. Ответов 16

Студворк — интернет-сервис помощи студентам
Составить программу для вычисления суммы: 1!+2!+3!+ …+n! (n 15) с помощью рекурсии
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.04.2022, 16:18
Ответы с готовыми решениями:

Составить программу для вычисления суммы
Составить программу для вычисления суммы вида 1+1/2^3+1/3^3+...+1/50^3 Заранее спасибо!

Составить программу для вычисления суммы с++
Составить программу для вычисления суммы данного ряда для указанного значения аргумента х, если известно количество N членов ряда. ...

Составить программу для вычисления суммы факториалов
Составить программу для вычисления суммы: 1!+2!+3!+ …+n! (n 15).

16
 Аватар для programmer_08
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
27.04.2022, 16:19
C++
1
2
3
4
5
6
7
long long int func(unsigned int n)
{
if(n>0)
return n*func(n-1);
else
return 1;
}
0
0 / 0 / 0
Регистрация: 16.04.2022
Сообщений: 40
27.04.2022, 16:25  [ТС]
можно пожалуйста полный код
0
 Аватар для programmer_08
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
27.04.2022, 16:27
pers1k, его нет. Это всё что я написал, т.е. эту функцию я даже не тестировал. Удачи!
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5209 / 2927 / 1509
Регистрация: 14.12.2018
Сообщений: 5,267
Записей в блоге: 1
27.04.2022, 17:58
programmer_08, программа с рекурсией для этой формулы не так ! Вы написал рекурсию для вычисления факторала, это не требуется в задаче как я понимаю.
0
 Аватар для programmer_08
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
27.04.2022, 21:58
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
long long int fact(unsigned int n)
{
if(n>0)
return n*func(n-1);
else
return 1;
}
long long int func(unsigned int n)
{
long long int sum = 0;
for(int i = 1;i<=n;i++)
sum+=fact(i);
return sum;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
unsigned int fact(int* arr, unsigned int n)
{
    if (n > 0)
        return (arr[n - 1] = n * fact(arr, n - 1));
    else
        return 1;
}
long long int func(unsigned int n)
{
    if (n <= 0)
        n = 1;
    int* arr = new int[n];
    fact(arr, n);
    long long int sum = 0;
    for (int i = 0; i < n; i++)
        sum += arr[i];
    return sum;
}
0
 Аватар для programmer_08
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
27.04.2022, 21:59
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
long long int fact(unsigned int n)
{
if(n>0)
return n*func(n-1);
else
return 1;
}
long long int func(unsigned int n)
{
long long int sum = 0;
for(int i = 1;i<=n;i++)
sum+=fact(i);
return sum;
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
unsigned int fact(int* arr, unsigned int n)
{
    if (n > 0)
        return (arr[n - 1] = n * fact(arr, n - 1));
    else
        return 1;
}
long long int func(unsigned int n)
{
    if (n <= 0)
        n = 1;
    int* arr = new int[n];
    fact(arr, n);
    long long int sum = 0;
    for (int i = 0; i < n; i++)
        sum += arr[i];
    return sum;
}
0
4 / 4 / 0
Регистрация: 25.08.2017
Сообщений: 45
27.04.2022, 22:45
вот вам код:

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>
 
 
int main(){
 
    using namespace std;
 
    int n;
 
    cout << "Enter n: ";
    cin >> n;
 
    unsigned long long cur_fact = 1;
    unsigned long long res = 0;
 
    for (int i = 0; i < n; i++){
        res += cur_fact;
        cur_fact *= (i + 2);
    }
 
    cout << "Result: " << res << endl;
 
}
0
0 / 0 / 0
Регистрация: 16.04.2022
Сообщений: 40
27.04.2022, 22:54  [ТС]
извиняюсь как его прогнать правильно?
0
 Аватар для programmer_08
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
27.04.2022, 22:58
Intrigger, так ведь рекурсию нужно применить
и что за
Цитата Сообщение от Intrigger Посмотреть сообщение
cur_fact *= (i + 2);
почему не просто i?
0
4 / 4 / 0
Регистрация: 25.08.2017
Сообщений: 45
27.04.2022, 23:03
Не заметил что нужна рекурсия, но если честно она тут не нужна))
1
0 / 0 / 0
Регистрация: 16.04.2022
Сообщений: 40
28.04.2022, 00:31  [ТС]
Как прогнать этот код? у меня выдаёт ошибки
0
 Аватар для programmer_08
687 / 444 / 209
Регистрация: 18.10.2020
Сообщений: 1,606
28.04.2022, 00:47
[nick]Intrigger[/pers1k, какой код? Какие ошибки?
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5209 / 2927 / 1509
Регистрация: 14.12.2018
Сообщений: 5,267
Записей в блоге: 1
28.04.2022, 13:33
programmer_08, вот формула рекурсии для заданной суммы как я понимаю:
https://www.cyberforum.ru/cgi-bin/latex.cgi?S_n=1!+2!+...+n!=\left\{\begin{matrix}<br />
1 & if & n=1\\ <br />
3 & if & n=2\\ <br />
(n+1)S_{n-1}-nS_{n-2} & if & n>2<br />
\end{matrix}\right.  <br />
Поэтому у нас код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
double S(unsigned n)
{
    if (n == 1) return 1.0;
    else if (n == 2) return 3.0;
    else return (n + 1)*S(n - 1) - n*S(n - 2);
}
int main()
{
    unsigned n;
    std::cout << "n = "; std::cin >> n;
    std::cout << "Result: s = " << S(n);
    return 0;
}
1
0 / 0 / 0
Регистрация: 16.04.2022
Сообщений: 40
28.04.2022, 22:52  [ТС]
Когда прогоняешь надо же 15 вводить? у меня выдаёт s = 1.4016e+12
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5209 / 2927 / 1509
Регистрация: 14.12.2018
Сообщений: 5,267
Записей в блоге: 1
29.04.2022, 06:04
Цитата Сообщение от pers1k Посмотреть сообщение
у меня выдаёт s = 1.4016e+12
Что надо вам если n=15 ?

Можно заменить double на long long для функции S(). Вот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
long long S(unsigned n)
{
    if (n == 1) return 1;
    else if (n == 2) return 3;
    else return (n + 1)*S(n - 1) - n*S(n - 2);
}
int main()
{
    unsigned n;
    std::cout << "n = "; std::cin >> n;
    std::cout << "Result: s = " << S(n);
    return 0;
}
И попробуйте !
0
place status here
 Аватар для gunslinger
3190 / 2227 / 640
Регистрация: 20.07.2013
Сообщений: 6,023
29.04.2022, 10:20
Volga_, у меня глупый вопрос. А как в общем случае для "последовательности" понять "вид" рекурсивной формулы? Если с циклами еще что-то понятно, то с рекурсией мой мозг (размером с грецкий орех, видимо) часто не справляется. Существует определенный алгоритм или нужно извилинами пошевелить, чтобы формулу получить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.04.2022, 10:20
Помогаю со студенческими работами здесь

Составить программу для вычисления следующей суммы
Составить программу для вычисления следующей суммы 1/х-1/2х во второй степени+1/3х в третьей степени-1/4х в четвертой степени...с заданной...

Составить программу для вычисления суммы n членов
Составить программу для вычисления суммы n членов ряда согласно условию Добавлено через 8 минут ...

Составить программу для вычисления суммы бесконечного ряда
Составить программу для вычисления суммы бесконечного ряда. Формулой общего члена ряда и возведением (-1) в степень не пользоваться!...

Составить программу для вычисления суммы бесконечного ряда
Составить программу для вычисления суммы бесконечного ряда. Формулой общего члена ряда и возведением (-1) в степень не пользоваться!...

Составить программу для вычисления суммы бесконечного ряда
... П.5.18.Правил Запрещено размещать задания и решения в виде картинок и других файлов с их текстом. Постановку задачи и текст...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru