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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Определение колличества членов ak псоледовательности http://www.cyberforum.ru/cpp-beginners/thread168254.html
Помогите пожалуйста подправить программу. Нужно Определить количество членов ak последовательности а1,....,аn, являющихся нечетными числами. #include <iostream> #include <conio.h> int S=0; int n; int main() { std::cout <<"vvedite n"; std::cin >>n; int a;
C++ Описать класс "Матрица" я как бэ в поиске нашел но мне бы хотелось узнать обязательно ли матрица должна быть динамической и можно написать метод для ввода и вывода матрицы? а то я пытался сделать но чего-то работает неверно... http://www.cyberforum.ru/cpp-beginners/thread168246.html
C++ Перемножение двух чисел
Никак не могу понять в чем ошибка в таком простом коде #pragma argsused #include <iostream.h> #include <conio.h> #include <math.h> #include <stdio.h> #include <clx.h> #pragma hdrstop
Поиск неориентированного графа C++
Здравствуйте, мне надо бы очень срочно решить данную задачу: Даны степени вершин неориентированного графа. Гарантировано, что число ребер в графе не превышает 500 000. Граф не содержит циклов и петель Формат входных данных Первая строка содержит число N-количество вершин в графе (1<=N<=10 000). N чисел? записанных в следующей строке d (1<=d<=10 000) описывают степени i-той вершины графа....
C++ "Сжатие" массива http://www.cyberforum.ru/cpp-beginners/thread168213.html
Натолкнулся на проблему, помогите, пожалуйста разобраться. Допустим у нас есть массив из 100 элементов. Чтобы "сжать" его в массив из 50 элементов, достаточно брать среднее арифм. каждых двух подряд идущих чисел и записывать в новый массив. А как поступить, если нужно массив из 100 "сжать" в массив, например, из 70 элементов? (например из 10 20 30 получить 13.66 и 26.33)
C++ Нахождение минимального и максимального элементов матрицы дано целочисленная матрица n x m определить: 1. MAX элемент в первом столбце и MIN элемент в последнем столбце. 2 MAX элемент во второй строке и MIN элемент в предпоследней строке и указать их место нахождения подробнее

Показать сообщение отдельно
MarchZM
0 / 0 / 0
Регистрация: 18.09.2010
Сообщений: 52
29.09.2010, 16:48  [ТС]     Факториал
Не могли бы объяснить как при помощи рекуррентности сделать. Функция main одна для всех этих программ
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
#include <iostream>
#include <conio.h>
#include <math.h>
using namespace std;
 
double factorial(double);
double calculate(double, int);
 
int main()
{
    double K;
    double x;
    double result;
 
    do
    {
        cout << "Input K: ";
        cin >> K;
 
        if (K <= 0.0)
            cout << "K must be greater than or equal to zero! Try...\n\n";
    }
    while (K <= 0.0);
 
    cout << "Input x: ";
    cin >> x;
 
    result = calculate(x, (double)K);
 
    cout << "Result: " << result;
 
 
    getch();
    return 0;
}
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
#include <math.h>
double factorial(double);
double calculate(double, int);
 
double factorial(double n)
{
    double i;
    
 
    for (i = n - 1.0; i > 1.0; i -= 1.0)
        n *= i;
 
    return (n == 0.0) ? 1.0 : n;
}
 
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;
}
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
#include <math.h>
double factorial(double);
double calculate(double, int);
 
double factorial(double n)
{
double i;
 
i = n - 1.0;
 
while (i > 1.0)
{
n *= i;
i -= 1.0;
}
 
return (n == 0.0) ? 1.0 : n;
}
 
double calculate(double x, int K)
{
    double sum = 0.0;
    int p = 0;
    double n = 0.0;
    int i = -1;
 
    while (n < K)
    {
sum += pow(-1.0, p) * pow(x, ++i) / factorial(2.0 * n + 1.0);
 
        if (i % 2 != 0)
        {
            i += 2;
            p++;
        }
 
n += 1.0;
    }
 
    return sum;
}
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 <math.h>
double factorial(double);
double calculate(double, int);
 
double factorial(double n)
{
double i;
 
i = n - 1.0;
 
do
{
n *= i;
i -= 1.0;
}
while (i > 1.0);
 
return (n == 0.0) ? 1.0 : n;
}
 
double calculate(double x, int K)
{
    double sum = 0.0;
    int p = 0;
    double n = 0.0;
    int i = -1;
 
    do
    {
sum += pow(-1.0, p) * pow(x, ++i) / factorial(2.0 * n + 1.0);
 
        if (i % 2 != 0)
        {
            i += 2;
            p++;
        }
 
n += 1.0;
    }
    while (n < K);
 
    return sum;
}
 
Текущее время: 08:38. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru