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

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

Войти
Регистрация
Восстановить пароль
 
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
#1

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

04.02.2010, 14:57. Просмотров 943. Ответов 13
Метки нет (Все метки)

Здравствуйте! Задали новые задачки, не могу реализовать функцию для факториала. Например есть вот такое выражение S= ( i! )/(( N+i )!)
Помогите, как можно осуществить решение?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2010, 14:57
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Факториал (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++
Помогите написать программу: Составить функцию, которая вычисляет сумму К слагаемых. В вызывающей функции main() организовать контроль...

13
Sekt
156 / 155 / 10
Регистрация: 29.04.2009
Сообщений: 637
04.02.2010, 15:56 #2
C
1
2
3
4
5
6
double x;
double ch;
cin>>x>>ch;
int n;
for(n=0;fabs(ch)>eps;n++)
ch*=x/x*(2*n+2)*(2*n+3);
P.s второй строкой аналогичто добавте деление на N+I;
0
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
04.02.2010, 16:40  [ТС] #3
а можно на Си если не трудно. И полностью решение, чтобы я понял...?
0
insideone
Модератор
Автор FAQ
3643 / 922 / 51
Регистрация: 10.01.2010
Сообщений: 2,480
04.02.2010, 17:47 #4
Факториал? С не знаю, однако думаю и там будет работать подобное:
C
1
2
3
4
5
6
7
8
9
10
11
// Т.к. факториал это произведение группы чисел от n до 1 где n число
// от которого берется факториал то очевидным будет использовать цикл
int Factorial(int arg){
    // Будем домножать исходное число на предшествующее ему
    // и так в цикле до 1
    for (int i = arg - 1; i > 1; i--)
    {
        arg *= i;
    }
return arg;
}
0
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
04.02.2010, 18:52  [ТС] #5
За это спасибо. Надеюсь кто-то покажет как с помощью этого решить задачу. Так как я человек, который учит сначало практику, а потом теорию =))
0
insideone
Модератор
Автор FAQ
3643 / 922 / 51
Регистрация: 10.01.2010
Сообщений: 2,480
04.02.2010, 19:40 #6
Нужно расчитать "S= ( i! )/(( N+i )!)"?
C++
1
cout << (Factorial(i) / Factorial(N+i));
где то так...
другими словами все что в выражении у вас (x)! вы вместо этого пишите Factorial (x)

Добавлено через 3 минуты
хм... опять я на С++ пишу. Впрочем как сделать вывод на С я и не знал никогда. Ну думаю что я хотел написать вы поняли)
0
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
06.02.2010, 18:50  [ТС] #7
темка всё ещё актуальна! нужен код!
0
M128K145
Эксперт С++
8300 / 3520 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
07.02.2010, 00:29 #8
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int fact(int i)
{
    int f = 1;
    if(!i || i == 1)
        return 1;
    do
        f *= i--;
    while (i != 0);
    return f;
}
int main()
{
    int i = 5, N = 0;
    printf("%f", (double)fact(i) / fact(i + N));
    return 0;
}
0
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
07.02.2010, 10:56  [ТС] #9
А можно вот это
C
1
(double)fact(i) / fact(i + N)
задать новой переменной? а то там дальше сумму ряда нужно вычислять.
0
M128K145
Эксперт С++
8300 / 3520 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
07.02.2010, 11:34 #10
Bloodykeeper, ты меня удивляешь.
C
1
2
3
4
5
6
7
int main()
{
    int i = 5, N = 0;
    double S = (double)fact(i) / fact(i + N);
    printf("%f", S);
    return 0;
}
1
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
07.02.2010, 12:44  [ТС] #11
M128K145, ну я навсякий переспросил сейчас не за визуалкой просто, с принтером проблемы, с железом маюсь)

Добавлено через 24 минуты
такс...я как всегда ламерничаю
задание то же, только S=сумма ряда от i-1 до N (( i! )/(( N+i )!))
то есть помимо того нужно вставить сумму ряда. Помогите исправить ошибки!
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <math.h>
int fact(int i)
{
    int f = 1;
    if(!i || i == 1)
        return 1;
    do
        f *= i--;
    while (i != 0);
    return f;
}
int main()
{
    int i = 5, N = 0, S;
    printf("Enter N: ");
    scanf("%f", &N);
    for(i-1; i<N; i++)
    {   double S = (double)fact(i) / fact(i + N);}
    printf("%f", S);
    return 0;
}
0
M128K145
Эксперт С++
8300 / 3520 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
07.02.2010, 12:58 #12
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <stdio.h>
#include <math.h>
int fact(int i)
{
    int f = 1;
    if(!i || i == 1)
        return 1;
    do
        f *= i--;
    while (i != 0);
    return f;
}
int main()
{
    int i = 5, N, S = 0; // N > i строго! и проверяй, что i != 0
    printf("Enter N: ");
    scanf("%f", &N);
    for(i-1; i<N; i++)
        S += (double)fact(i) / fact(i + N);
    printf("%f", S);
    return 0;
}
1
Bloodykeeper
This party getting crazy!
78 / 74 / 1
Регистрация: 22.09.2009
Сообщений: 427
07.02.2010, 13:25  [ТС] #13
M128K145, после ввода N программа застывает. И дальше не шевелится...
0
M128K145
Эксперт С++
8300 / 3520 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
07.02.2010, 14:41 #14
C
1
2
3
4
5
6
7
8
9
10
11
int main()
{
    int i, N;
    double S = 0;
    printf("Enter N: ");
    scanf("%d", &N);
    for(i = 2; i < N; ++i)
        S += (double)(fact(i)) / (double)fact(i + N);
    printf("\n%f", S);
    return 0;
}
1
07.02.2010, 14:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2010, 14:41
Привет! Вот еще темы с ответами:

факториал - C++
найти число нулей в конце факториала числа N по основанию каждого множителя K (1&lt;=N&lt;=1000000000, 2&lt;=K&lt;=1000) #include &lt;iostream&gt; ...

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

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

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


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

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

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