Update double_factorial.cpp

This commit is contained in:
DarkWarrior703
2020-04-25 22:34:44 +03:00
committed by GitHub
parent e6874e4d18
commit 9fef832f57

View File

@@ -8,23 +8,22 @@ that have the same parity (odd or even) as n.
It is also called as semifactorial It is also called as semifactorial
of a number and is denoted by !! */ of a number and is denoted by !! */
unsigned long long double_factorial_iterative(unsigned int n){ uint64_t double_factorial_iterative(unsigned int n){
unsigned long long res = 1; unsigned long long res = 1;
for( unsigned long long i = n; i >= 0; i -= 2 ){ for ( unsigned long long i = n; i >= 0; i -= 2 ) {
if(i == 0 || i == 1) return res; if (i == 0 || i == 1) return res;
res *= i; res *= i;
} }
} }
/* Recursion can be costly for large numbers */ /* Recursion can be costly for large numbers */
unsigned long long double_factorial_recursive(unsigned int n){ uint64_t double_factorial_recursive(unsigned int n){
if(n <= 1) return 1; if (n <= 1) return 1;
return n * double_factorial_recursive(n - 2); return n * double_factorial_recursive(n - 2);
} }
int main() int main() {
{
int n{}; int n{};
std::cin >> n; std::cin >> n;
assert(n >= 0); assert(n >= 0);