Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.83
spiderman
0 / 0 / 0
Регистрация: 15.04.2010
Сообщений: 9
#1

Факториал. Вычисление суммы ряда - C++

04.11.2010, 21:16. Просмотров 2374. Ответов 16
Метки нет (Все метки)

Помогите, пожалуйста, запрограммировать формулу
0
Изображения
 
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.11.2010, 21:16
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Факториал. Вычисление суммы ряда (C++):

Вычисление суммы ряда
1^2+3^2+5^2+...+(2n-1)^2

Вычисление суммы ряда С++
Вычисление суммы ряда

Вычисление суммы ряда
Вычислить s = sinx/2+sinx^2/4+...+sinx^n/2n #include <iostream> #include...

Вычисление суммы ряда
Задание: Вычислить бесконечную сумму с заданной точностью e (eps>0). Считать,...

Вычисление суммы ряда
Помогите составить функцию для данного выражения. \sum_{n=1}^{20} \frac{ln...

Вычисление суммы ряда
Программа для вычисления частичной суммы ряда \sum_{k=1}^{\infty...

16
quazee
14 / 14 / 1
Регистрация: 15.10.2010
Сообщений: 49
04.11.2010, 21:27 #2
эту задачу на с++ нельзя написать
0
ForEveR
В астрале
Эксперт С++
7994 / 4753 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
04.11.2010, 21:34 #3
quazee, Это еще с чего?
0
IrishaIrinaChe
28 / 28 / 3
Регистрация: 23.09.2010
Сообщений: 203
04.11.2010, 21:39 #4
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.h>
#include<math.h>
#include<stdio.h>
#include<conio.h>
 
int main()
{
 int n;
float x;
float s=0;
cout<<"n \n";
cin>>n;
cout<<" x \n";
cin>>x;
int ch=1;
for(int k=0;k<n;k++)
{
 for(int i=0;i<k;i++)
  ch*=2*i+1;
  s+=(pow(x,(2*k+1)))/ch;  //если не сработает, то fpow  =)
}
 cout<<s;
getch();
 return 0;
}
0
silent_1991
Эксперт С++
5007 / 3066 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
04.11.2010, 21:40 #5
Лучший ответ Сообщение было отмечено как решение

Решение

ForEveR, ну дык... Язык то слабоват для таких штучек... На нём некоторые даже Hello, World! писать не советуют... А ещё есть вероятность, что компилятор до ума не довели, засрёт всю оперативку и посадит батарейку биоса...
3
IrishaIrinaChe
28 / 28 / 3
Регистрация: 23.09.2010
Сообщений: 203
04.11.2010, 21:42 #6
silent_1991, о май гад!!! что же делать с таким гениальным языком?)
парень, кто-то тебе наговорил странных вещей, а ты веришь))) если си для ЭТОГО слабоват, то для чего он вообще?
0
silent_1991
Эксперт С++
5007 / 3066 / 270
Регистрация: 11.11.2009
Сообщений: 7,043
Завершенные тесты: 1
04.11.2010, 21:44 #7
IrishaIrinaChe, эх, не поняли вы всего сарказма... Неужели хотя бы количество моих сообщений позволяет верить, что я писал коммент на полном серьёзе?)))
0
IrishaIrinaChe
28 / 28 / 3
Регистрация: 23.09.2010
Сообщений: 203
04.11.2010, 21:46 #8
silent_1991, приношу свои извинения. не глянула, простите.
ещё раз sorry)
0
ForEveR
04.11.2010, 21:53
  #9

Не по теме:

Все таки M128K145 был прав насчет надобности смайлика *сарказм*

0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
04.11.2010, 22:29 #10
Что-то я, наверное, неправильно сделал - результаты очень странные получаются. Поправьте, буду благодарен...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cmath>
 
int fact(int n) { return ( ! n || n == 1 ) ? 1 : n * fact(n - 1); }
 
int main(){
    int n;
    std::cout << "Number of elements: ";
    std::cin >> n;
 
    double sum = 0;
    for ( int i = 0; i < n; ++i ){
        double p = 2.0 * i + 1.0;
        sum += pow(static_cast<double>(i), p) / static_cast<double>(fact(2 * i + i));
    }
    std::cout << "Sum: " << std::fixed << sum << std::endl;
 
    system("pause");
    return 0;
}
Цитата Сообщение от quazee Посмотреть сообщение
эту задачу на с++ нельзя написать
По морально-нравственным или религиозно-политическим соображениям?

silent_1991, про батарейку смешно.

А вообще, друзья, флудить прекращаем!
0
ForEveR
В астрале
Эксперт С++
7994 / 4753 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
04.11.2010, 22:59 #11
easybudda, x потеряли. Не сказано ведь что x меняется.
А правильнее даже так.
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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cmath>
 
int fact(int n) { return ( ! n || n == 1 ) ? 1 : n * fact(n - 1); }
 
int main(){
        int n;
        std::cout << "Number of elements: ";
        std::cin >> n;
        double x;
        std::cout<< "Enter x: ";
        std::cin>>x;
        double sum = 0;
        for ( int i = 0; i < n; ++i ){
                int p = 2 * i + 1;
                sum += pow(x, p)/(fact(p));
        }
        std::cout << "Sum: " << std::fixed << sum << std::endl;
 
        system("pause");
        return 0;
}
2
isaak
108 / 45 / 19
Регистрация: 17.10.2010
Сообщений: 695
05.11.2010, 21:39 #12
Можно вопрос в программе, которая написала IrishaIrinaChe результат при x= 4, n = 4, Sum = 773,42, а в программе easybudda результат при x= 4, n = 4, Sum = 26,450794, почему такое расхождение в результатах? Заранее огромное спасибо.
0
ForEveR
В астрале
Эксперт С++
7994 / 4753 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
05.11.2010, 23:35 #13
isaak, Э. 773? оО
0
easybudda
Модератор
Эксперт CЭксперт С++
10021 / 5944 / 1483
Регистрация: 25.07.2009
Сообщений: 11,230
06.11.2010, 01:42 #14
Цитата Сообщение от isaak Посмотреть сообщение
почему такое расхождение в результатах?
Не внимательно читаете!
Цитата Сообщение от easybudda Посмотреть сообщение
Что-то я, наверное, неправильно сделал - результаты очень странные получаются.
Цитата Сообщение от ForEveR Посмотреть сообщение
x потеряли. Не сказано ведь что x меняется.
1
ForEveR
В астрале
Эксперт С++
7994 / 4753 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
06.11.2010, 01:44 #15
easybudda, Да нет кстати.
а в программе easybudda результат при x= 4, n = 4, Sum = 26,450794
Это верный ответ. Т.е. он компилировал уже исправленный код судя по всему.
1
accept
4833 / 3254 / 454
Регистрация: 10.12.2008
Сообщений: 10,569
06.11.2010, 08:37 #16
C++
1
for (int i = 0; i <= n; ++i) {
если n от нуля до трёх, то там будет 0, 1, 2, 3 - четыре значения

Цитата Сообщение от easybudda
C++
1
(fact(2 * i + i));
2 * k + 1
0
IrishaIrinaChe
28 / 28 / 3
Регистрация: 23.09.2010
Сообщений: 203
06.11.2010, 16:24 #17
isaak, должно быть правильно.
0
06.11.2010, 16:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2010, 16:24
Привет! Вот еще темы с решениями:

Вычисление суммы ряда
не могу написать функцию, просто не понимаю ряды, а времени для их изучения...

Вычисление суммы ряда 1^k+2^k+...+n^k
Даны натуральные числа n и k. Составить программу вычисления выражения...

Вычисление суммы ряда
Считает вроде бы неплохо, но нету близости значений. Есть предположение что не...

Вычисление суммы ряда
Вычислить \sum_{i=1}^{\propto }i^2 пока S&lt;50 с помощью цикла while


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Опции темы

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