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

Сумма факториалов - C++

Восстановить пароль Регистрация
 
ole444ka1595
0 / 0 / 0
Регистрация: 08.05.2014
Сообщений: 4
08.05.2014, 17:29     Сумма факториалов #1
Помогите написать программу 1!+2!+3!+...+n!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2014, 17:29     Сумма факториалов
Посмотрите здесь:

C++ Длинная арифметика. сумма факториалов.
Сумма факториалов от 1 до N C++
Сумма факториалов цифр заданного числа C++
Сумма факториалов C++
C++ Сумма факториалов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cooller
 Аватар для cooller
564 / 532 / 120
Регистрация: 25.12.2013
Сообщений: 1,456
08.05.2014, 17:42     Сумма факториалов #2
ole444ka1595,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
int factorial(int number)
{
    return !number ? 1 : number * factorial(number - 1);
}
 
int main()
{
    const size_t n = 20;
    size_t sum(0);
    for(int i=1; i<=n; ++i)
        sum+=factorial(i);
    std::cout<<sum;
    return 0;
}
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
08.05.2014, 18:03     Сумма факториалов #3
Жалко постфиксный "!" нельзя сделать.
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>
 
class Int
{
    int num;
public:
    Int(int i): num(i) {}
    long operator !() {
        long prod = 1; 
        if (num > 1)
            for (int i = 0; i < num; ++i)
                prod *= (i+1);
        return prod;
    }
};
 
int main()
{
    int n = 20;
    long sum = 0;
    for (int i = 1; i<=n; ++i)
        sum += !Int(i);
    std::cout << sum;
    system("PAUSE");
}
MastAKK
08.05.2014, 18:06
  #4

Не по теме:

BumerangSP, красивый способ, кстати, никогда не додумывался

BumerangSP
08.05.2014, 18:12
  #5

Не по теме:

MastAKK, да не очень-то и красив. Может, поэтому и не задумывались =)

fishec
 Аватар для fishec
118 / 118 / 30
Регистрация: 07.09.2013
Сообщений: 337
08.05.2014, 18:48     Сумма факториалов #6
Можно так сделать, чтобы занова факториал для каждого числа не считать, а просто умножать на следующее число.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
using namespace std;
 
int main()
{
    int n;
    cout << "Enter n: ";
    cin >> n;
    int sum = 0;
    int temp = 1;
    for (int i = 1; i <= n; ++i){
        sum += temp;
        temp *= (i+1);
    }
    cout << "Sum = " << sum << endl;
    system("PAUSE");
    return 0;
}
Yandex
Объявления
08.05.2014, 18:48     Сумма факториалов
Ответ Создать тему
Опции темы

Текущее время: 18:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru