mirror of
https://github.com/TheAlgorithms/C-Plus-Plus.git
synced 2026-07-27 08:51:41 +08:00
Update double_factorial.cpp
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user