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

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

Войти
Регистрация
Восстановить пароль
 
l2ded
80 / 68 / 11
Регистрация: 10.05.2011
Сообщений: 284
#1

Как находят факториал? - C++

30.11.2012, 11:37. Просмотров 1003. Ответов 6
Метки нет (Все метки)

Вот код:
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 <iomanip.h> 
#include <math.h> 
int main() 
{ 
double a,b,h,x,y,s,k; 
int n,i; 
cout << "Vvedite a,b,n\n"; 
cin >> a >> b >> n; 
x=a; 
h=(b-a)/10; 
while (x<=b) 
{ 
s=k=1; 
y=(1-pow(x,2)/2)*cos(x)-x/2*sin(x); 
for (i=1; i<=n; i++) 
{ 
k/=2*i; 
s += pow(-1,i)*(2*pow(i,2)+1)*pow(x,2*i)*k; 
} 
cout << setw(15) << x << setw(15) << y << setw(15) << s << endl; 
x += h; 
} 
return 0; 
}
Мне не понятен этот момент
C++
1
k/=2*i;
в примере написано (2*n)!, т.е факториал 2*n=>
Как должно быть:
k=1 i=1 => k=k/2*1=1/2=0.5
k=0.5 i=2 => k=0.5/2*2=0.5/4=0.125
k=0.125 i=3 =>k=0.125/2*3=0.0283.

Как на самом деле:
k=1 i=1 => k=0.5
k=0.5 i=2 => k=0.5
k=0.5 i=3 =>k=0.75
Почему так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2012, 11:37
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как находят факториал? (C++):

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

Как вычислять факториал таких больших чисел, как 1000 - C++
подскажите есть ли возможность написать программу которая считает факториал таких больших чисел как 1000, не используя метод использующий...

Как задать факториал? - C++
Числитель нужно разделить на факториал &quot;k!&quot;, я написал так - ak=pow((-1),k-1)*pow(x,k)*pow(tan(p),k-1)/k! Но компилировать не хочет,...

Как высчитать факториал? - C++
Не могу понять, как сделать программу, которая будет высчитывать факториал (2n+1). Помогите пожалуйста.

написать функцию по одномерному массиву, которая среди элементов находят сумму кратных введённому числу k - C++
написать функцию по одномерному массиву, который среди элементов находят сумму кратных введённому числу k. В функцию передаётся массив и...

Как в языке С++ обозначить факториал? - C++
к примеру k! в документе выражение целиком

6
l2ded
80 / 68 / 11
Регистрация: 10.05.2011
Сообщений: 284
01.12.2012, 00:18  [ТС] #2
Цитата Сообщение от l2ded Посмотреть сообщение
Вот код:
Мне не понятен этот момент
C++
1
k/=2*i;
в примере написано (2*n)!, т.е факториал 2*n=>
Как должно быть:
k=1 i=1 => k=k/2*1=1/2=0.5
k=0.5 i=2 => k=0.5/2*2=0.5/4=0.125
k=0.125 i=3 =>k=0.125/2*3=0.0283.

Как на самом деле:
k=1 i=1 => k=0.5
k=0.5 i=2 => k=0.5
k=0.5 i=3 =>k=0.75
Почему так?
АУУУ ЧЕЛОВЕКИ ПОМОГИТЕ!
0
Ev[G]eN
iOS/Android Developer
Эксперт С++
5097 / 1535 / 381
Регистрация: 23.01.2011
Сообщений: 3,148
01.12.2012, 00:32 #3
Цитата Сообщение от l2ded Посмотреть сообщение
Как находят факториал?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
int factorial(int n) {
    return !n ? 1 : n * factorial(n - 1);
}
 
int main() {
    int n = 0;
    
    std::cin >> n;
    std::cout << factorial(n) << std::endl;
    
    system("pause");
    return 0;
}
0
l2ded
80 / 68 / 11
Регистрация: 10.05.2011
Сообщений: 284
02.12.2012, 00:39  [ТС] #4
Цитата Сообщение от l2ded Посмотреть сообщение
Вот код:
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 <iomanip.h> 
#include <math.h> 
int main() 
{ 
double a,b,h,x,y,s,k; 
int n,i; 
cout << "Vvedite a,b,n\n"; 
cin >> a >> b >> n; 
x=a; 
h=(b-a)/10; 
while (x<=b) 
{ 
s=k=1; 
y=(1-pow(x,2)/2)*cos(x)-x/2*sin(x); 
for (i=1; i<=n; i++) 
{ 
k/=2*i; 
s += pow(-1,i)*(2*pow(i,2)+1)*pow(x,2*i)*k; 
} 
cout << setw(15) << x << setw(15) << y << setw(15) << s << endl; 
x += h; 
} 
return 0; 
}
Мне не понятен этот момент
C++
1
k/=2*i;
в примере написано (2*n)!, т.е факториал 2*n=>
Как должно быть:
k=1 i=1 => k=k/2*1=1/2=0.5
k=0.5 i=2 => k=0.5/2*2=0.5/4=0.125
k=0.125 i=3 =>k=0.125/2*3=0.0283.

Как на самом деле:
k=1 i=1 => k=0.5
k=0.5 i=2 => k=0.5
k=0.5 i=3 =>k=0.75
Почему так?
Почему так?
0
David Sylva
1287 / 949 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
02.12.2012, 11:19 #5
Цитата Сообщение от l2ded Посмотреть сообщение
Почему так?

Не по теме:

Это ты спроси, у того кто писал этот код.Ev[G]eN выкатил тебе образец того как надо это делать.

0
Alexxfed132
Сообщений: n/a
02.12.2012, 12:01 #6
Находи факториал с помощью рекурсии, не ошибешься
-=ЮрА=-
Заблокирован
Автор FAQ
02.12.2012, 12:06 #7
l2ded, думаю у тебя задание найти сумму ряда с факториалами так?
Сам факториал находи вот так (сможешь иметь ответ вплоть до 100!, дальше уже длинная арифметика нужна)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
using namespace std;
 
double fact(double val)
{
    double ret = 1 < val ? val : 1;
    if(1 < (val -= 1))
        ret *= fact(val);
    return ret;
}
 
int main()
{
    cout<<"100! = "<<fact(100)<<endl;
    return 0;
}
0
Миниатюры
Как находят факториал?  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2012, 12:06
Привет! Вот еще темы с ответами:

Как посчитать сложный факториал? - C++
Вопрос конечно до безобразия скучный и неинтересный, хотя кто знает....Но, как мне посчитать вот эту сумму??? Проблема в том, что я не...

Как использовать двойной факториал в С++ с использованием только if и for? - C++
Код определяет четность или нечетность числа. Как в этой же программе вычислить двойной факториал введенного числа? МОЖНО...

как отобразить факториал и сумму в microsoft visual c++ - C++
Ребят помогите пожалуйста. не могу написать функцию для этого примера http://i080.***********/0912/c0/1370a4125870.jpg Добавлено...

Нужно вычислить факториал 33, 100 и 1000 как можно проще - C++
Нужно вычислить фактариал 33, 100 и 1000 как можно проще


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

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

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