Тема: Порахувати суму факторіалів
Доброго вечора! Допоможіть будь ласка порахувати суму факторіалів, які потрібно рахувати рекурсивно.
У мене є функція, яка рахує (n+1)!, потрібно, щоб кожен доданок сумувався, тобто 1!+2!+3!+4!+....+n!+(n+1)!
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Порахувати суму факторіалів
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Доброго вечора! Допоможіть будь ласка порахувати суму факторіалів, які потрібно рахувати рекурсивно.
У мене є функція, яка рахує (n+1)!, потрібно, щоб кожен доданок сумувався, тобто 1!+2!+3!+4!+....+n!+(n+1)!
#include <iostream>
using namespace std;
size_t factorial(size_t n){
    size_t ret = n;
    if( n == 0 )
        ret = 1;
    else
        ret = ret*factorial(--n); 
    return ret;
}
int main(){
    size_t f = 0;
    size_t i = 0;
    size_t s = 0;
    size_t n = 5;
    for( i = 0; i <= n + 1; i++ ){
        f = factorial(i);
        s = s + f;
        cout<<i<<"! = "<<f<<"\ts= "<<s<<endl;
    }
    return 0;
}0! = 1 s= 1
1! = 1 s= 2
2! = 2 s= 4
3! = 6 s= 10
4! = 24 s= 34
5! = 120 s= 154
6! = 720 s= 874
Рекурсивно... хех...
typedef unsigned long long num;
constexpr num factorial( unsigned n ) 
{
    if( n <= 1 ){
        return 1;
    } else {
        return n * factorial( n - 1 );
    }
}
constexpr num sumFactorial( unsigned  n ) 
{
    if( n == 0 ) {
        return factorial( 0 );
    } else {
        return sumFactorial( n - 1 ) + factorial( n );
    }
}Ось рекурсія для факторіалу числа)
int factorial(int n) {
  return n?n*factorial(n-1):1;
}Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися