Тема: Порахувати суму факторіалів
Доброго вечора! Допоможіть будь ласка порахувати суму факторіалів, які потрібно рахувати рекурсивно.
У мене є функція, яка рахує (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
Для відправлення відповіді ви повинні увійти або зареєструватися