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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
сержи
6 / 6 / 0
Регистрация: 03.07.2010
Сообщений: 222
#1

факториал сократить - C++

25.09.2013, 13:20. Просмотров 1358. Ответов 11
Метки нет (Все метки)

Добрый день. Хотел спросить как сократить факториал? Формула приведена ниже, красным обведено.
Вот сама формула записана в С++, и вместо верхней формулы я использовал х. Теперь вместо этого хнужно подставить формулу в сокращенном виде, а как это сделать я не знаю.
Помогите пожалуйста, буду очень благодарен.

p*=x/(k*(2*k+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
26
27
28
29
30
31
32
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <clocale>
 
using namespace std;
 
int main()
{
    setlocale (0, "Rus");
    double a, x, E, p, summa=0;
    int k=1;
        cout<<"Введите число x:=";
        cin>>x;
        cout<<"Введите число x:=";
        cin>>E;
        cout<<"Введите число a:=";
        cin>>a;
 
        p=x/3;
        while (fabs(p)>E)
        {
            summa+=p;
            k++;
            p*=x/(k*(2*k+1));
        }
        summa+=1;
        cout<<summa<<endl;
        cout<<k<<endl;
        system("pause");
        return 0;
}
Миниатюры
факториал сократить  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.09.2013, 13:20
Здравствуйте! Я подобрал для вас темы с ответами на вопрос факториал сократить (C++):

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

Сократить выражение - C++
Здравствуйте Фрагмент кода: Sum-=(c=Sum/25)*25; coins+=c; Sum-=(c=Sum/10)*10; coins+=c; ...

Сократить дробь - C++
Даны натуральные числа a и b, обозначающие соответственно числитель и знаменатель дроби. Сократите дробь, т.е найти такие натуральные p и...

Сократить дробь - C++
Смысл задачи в том, что когда ввожу например дробь 3/9 в результате мне должно вывести не скоротную дробь, то бишь 1/3

Сократить часть программы - C++
Ребят нужна помощь в данном задании, программа написана, но часть программы(смотрите на фото, обведено красным) нужно сократить, а я не...

Как сократить запись? - C++
Всем привет! Пишу ASCII-игру и вот такой вопросик по коду: while(brk) play(level1); brk = 1; while(brk) play(level2); brk =...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 480
Записей в блоге: 1
25.09.2013, 13:38 #2
Ну во-первых, где описание того, что такое "a"?
Во-вторых, значок бесконечности над суммой не может быть, так как "k" не может стать больше чем "а+1"

Уточняйте условия
Smems
149 / 148 / 4
Регистрация: 21.05.2010
Сообщений: 338
25.09.2013, 13:40 #3
сержи, напишите метод нахождения факториала и передавайте в него a - k + 1. Возвращаемое значение будет вместо x. Он же пригодится Вам и в знаменателе - k!.
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 480
Записей в блоге: 1
25.09.2013, 13:44 #4
И ещё, что такое "fabs(p)" у Вас в коде?

Добавлено через 1 минуту
Цитата Сообщение от Smems Посмотреть сообщение
сержи, напишите метод нахождения факториала и передавайте в него a - k + 1. Возвращаемое значение будет вместо x. Он же пригодится Вам и в знаменателе - k!.
СТОП!!! Не понятно, что автор темы имел ввиду под словом сократить: сократить дробь или сократить запись?
сержи
6 / 6 / 0
Регистрация: 03.07.2010
Сообщений: 222
25.09.2013, 13:58  [ТС] #5
Цитата Сообщение от Algoritmer Посмотреть сообщение
И ещё, что такое "fabs(p)" у Вас в коде?

Добавлено через 1 минуту

СТОП!!! Не понятно, что автор темы имел ввиду под словом сократить: сократить дробь или сократить запись?
сократить запись которая обведена красным цветом на рисунке.
Код писался совместно с преподом.
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 480
Записей в блоге: 1
25.09.2013, 14:03 #6
сержи, если Smems тебя правильно понял, то читай сообщение 2. Если нет, тогда то о чем ты просишь невозможно. Определись сначала, что нужно, потом задавай вопрос.
сержи
6 / 6 / 0
Регистрация: 03.07.2010
Сообщений: 222
25.09.2013, 14:07  [ТС] #7
Вот само задание: [cut]

Просто перпод сказал сократить запись: (а-k+1)! .
сержи
6 / 6 / 0
Регистрация: 03.07.2010
Сообщений: 222
25.09.2013, 14:11  [ТС] #8
Вот задание:
Миниатюры
факториал сократить  
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 480
Записей в блоге: 1
25.09.2013, 15:06 #9
Цитата Сообщение от сержи Посмотреть сообщение
Вот само задание: [cut]

Просто перпод сказал сократить запись: (а-k+1)! .
Наверняка Вы препода не поняли. Запись (а-k+1)! никак не сократишь
Вот функция для вычисления факториала:
C++
1
2
3
4
5
6
7
8
9
long int factorial(int n)
{
   long int M=1;
   for(int i=2;i<=n;i++)
   {
       M*=i;
   }
   return M;
}
Вставьте её перед функцией main() и вызывйте там где надо высчитать факториал
сержи
6 / 6 / 0
Регистрация: 03.07.2010
Сообщений: 222
25.09.2013, 20:06  [ТС] #10
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
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <clocale>
 
using namespace std;
 
long int factorial(int n)
{
   long int M=1;
   for(int i=2;i<=n;i++)
   {
       M*=i;
   }
   return M;
}
 
int main()
{
    setlocale (0, "Rus");
    double a, x, E, p, summa=0;
    int k=1;
        cout<<"Введите число x:=";
        cin>>x;
        cout<<"Введите число x:=";
        cin>>E;
        cout<<"Введите число a:=";
        cin>>a;
 
        p=x/3;
        while (fabs(p)>E)
        {
            summa+=p;
            k++;
            p*=x/(k*(2*k+1));
        }
        summa+=1;
        cout<<summa<<endl;
        cout<<k<<endl;
        system("pause");
        return 0;
}
/

/Так что ли? А как потом вызывать/?
сержи
6 / 6 / 0
Регистрация: 03.07.2010
Сообщений: 222
30.09.2013, 12:24  [ТС] #11
\Помогите пожалуйста.

Добавлено через 4 часа 42 минуты
Помогите пожалуйста.
Algoritmer
155 / 95 / 13
Регистрация: 07.03.2013
Сообщений: 480
Записей в блоге: 1
30.09.2013, 13:02 #12
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
#include "stdafx.h"
#include <iostream>
#include <math.h>
#include <clocale>
 
using namespace std;
 
long int factorial(int n)
{
   long int M=1;
   for(int i=2;i<=n;i++)
   {
       M*=i;
   }
   return M;
}
 
int main()
{
    setlocale (0, "Rus");
    int a, x;
    double E, p, summa=0;
    int k=1;
        cout<<"Введите число x:=";
        cin>>x;
        cout<<"Введите число x:=";
        cin>>E;
        cout<<"Введите число a:=";
        cin>>a;
 
        p=x/3;
        while (fabs(p)>E)
        {
            summa+=p;
            k++;
            p=factorial(a-k+1)/(factorial(k)*(2*k+1))*power(x, k); 
        }
        summa+=1;
        cout<<summa<<endl;
        cout<<k<<endl;
        system("pause");
        return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.09.2013, 13:02
Привет! Вот еще темы с ответами:

Необходимо сократить дробь - C++
Добрый день/вечер/ночь. Помогите пожалуйста знающие. Есть класс дробь, нужно ее сократить (показано комментариями): #include...

Как сократить до инициалов? - C++
Нужно сократить например Фамилия Имя Отчество до Фамилия И. О. Пожалуйста, подскажите или напишите как это сделать.

Как сократить запись? - C++
Здравствуйте, дорогие форумчане! Имеется вот такой код: for(int i = 0; i &lt; n; i++) { int t; in &gt;&gt; t; // как сократить эти ...

Сократить код, переделав if - C++
#include &lt;iostream&gt; #include &lt;math.h&gt; #pragma hdrstop #pragma argsused using namespace std; int main(int argc, char* argv) ...


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

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

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