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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 28, средняя оценка - 4.64
MarchZM
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 52
#1

Факториал - C++

22.09.2010, 18:15. Просмотров 3568. Ответов 36
Метки нет (Все метки)

Помогите написать программу:
Составить функцию, которая вычисляет сумму К слагаемых. В вызывающей функции main() организовать контроль ввода положительного целого K, большего 0. Через do... while или while или for
--------------
В знаменателе 2n-1, а что делать со степенью x и меняющимися знаками??
Изображения
 
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.09.2010, 18:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Факториал (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++
найти число нулей в конце факториала числа N по основанию каждого множителя K (1<=N<=1000000000, 2<=K<=1000) #include <iostream> ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MarchZM
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 52
29.09.2010, 17:25  [ТС] #16
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
#include <math.h>
double factorial(double);
double calculate(double, int);
 
double factorial(double n)
{
    if(n==1)
                return 1;
        else
                return n*factorial(n-1);
 
}
 
double calculate(double x, int K)
{
    double sum = 0.0;
    int p;
    double n;
    int i;
 
    for (i = -1, n = 0.0, p = 0; n < K; n += 1.0)
    {
        sum += pow(-1.0, p) * pow(x, ++i) / factorial(2.0 * n + 1.0);
 
        if (i % 2 != 0)
        {
            i += 2;
            p++;
        }
    }
 
    return sum;
}
В моём случает так?
Syndarin
13 / 13 / 1
Регистрация: 15.09.2009
Сообщений: 57
29.09.2010, 17:27 #17
В функцию calculate не вникал, но похоже на то
MarchZM
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 52
30.09.2010, 21:23  [ТС] #18
Спасибо всем!

Добавлено через 19 часов 46 минут
а саму функцию calculate через рекуррентность никак нельзя?

Добавлено через 8 часов 8 минут
Пожалуйста помогите с рекуррентностью, мне нужно избавиться от факториала
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
30.09.2010, 22:12 #19
MarchZM,
Вообще-то честно говоря не могу сообразить, какая тут будет рекурсивная функция...
KuKu
1557 / 1035 / 77
Регистрация: 17.04.2009
Сообщений: 2,981
30.09.2010, 22:38 #20
MarchZM, ваш преподавателю наверное не понравилось что факториал и возведение в степень считаются каждый раз заново для каждого члена. А по-хорошему надо бы новый член считать из предыдущего, не делая повторных вычислений.
a[0]=1
a[1]=x

b[0]=1;

a[i]=-a[i-2]*x^4;
b[i]=b[i-1]*(2*i-1)*(2*i-2)

S=a[i]/b[i]

вродь формулы такие, хотя могу ошибаться.

Не по теме:

silent_1991, извиняюся за упорство, насчет ряда Тейлора я был не прав.

silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
30.09.2010, 22:57 #21
Так получается, нужна действительно рекуррентная, а не рекурсивная формула... Потому что я действительно не могу понять, как тут построить рекурсивную функцию... Или, может, тупею)))

Не по теме:

KuKu,
Рад, что мы пришли к соглашению)))

MarchZM
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 52
01.10.2010, 08:40  [ТС] #22
silent_1991, я тоже не понимаю, она тригонометрическая, а в задаче этого не сказано плюс там X в степени меняется строго с шагом = 2
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
01.10.2010, 13:22 #23
MarchZM,
Вопрос номер раз: Кто тригонометрический?
Вопрос номер два раза: Чего не сказано в задаче?
Вопрос номер три раза: Что значит икс в степени меняется строго с шагом два? Степень меняется не с шагом два. А икс вообще фиксированный и задаётся с клавиатуры.
В общем, ваш пост вызывает у меня сплошные вопросы...
MarchZM
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 52
01.10.2010, 15:30  [ТС] #24
silent_1991, я про реккурентную формулу, не про задание =)
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
01.10.2010, 15:53 #25
Рекуррентная формула не обязана быть тригонометрической, и в ней не обязан меняться икс. Рекуррентная формула, это такая формула, которая позволяет вычислить очередной член ряда на основе уже вычисленных предыдущих.
MarchZM
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 52
01.10.2010, 15:59  [ТС] #26
http://twcad.ifmo.ru/?rub=riad не знаю вот отсюда я понял про неё, подойдёт ли она для моего задания?
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
01.10.2010, 16:00 #27
По ссылке - пример, как найти рекуррентную формулу на основе заданного ряда. Вам нужно искать свою формулу, так как ряд у вас, естественно, другой.
MarchZM
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 52
01.10.2010, 16:07  [ТС] #28
лучшее что я нашёл это ряд Тейлора, но там степени меняются с определённым шагом, и знаки постоянно чередуются, а у меня не так...
silent_1991
Эксперт С++
4963 / 3039 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
01.10.2010, 16:23 #29
Я бы предложил группировать слагаемые парами. Первая пара - первый член ряда, вторая пара - второй член и т.д. Тогда и шаг степени будет постоянен, и знаки будут постоянно чередоваться.
MarchZM
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 52
01.10.2010, 16:26  [ТС] #30
тогда опять две функции будет? может быть препод ошибся? мне кажется не получиться решить через рекуррентную формулу...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.10.2010, 16:26
Привет! Вот еще темы с ответами:

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

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

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

факториал - C++
#include &lt;iostream&gt; using namespace std; size_t fact(size_t n) { if(n==0) return 1; return n*fact(n-1); } int...


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

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

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