阶乘 (Factorial)
long long factorial_recursive(int n) {
if (n <= 1) {
return 1;
}
long long sub_result = factorial_recursive(n - 1);
return n * sub_result;
}
long long factorial_iterative(int n) {
if (n < 0) { return -1; }
if (n <= 1) { return 1; }
long long result = 1;
for (int i = 2; i <= n; ++i) {
result *= i;
}
return result;
}
斐波那契数列 (Fibonacci)
注意:递归斐波那契效率极低,因为存在大量重复计算。
int fibonacci_recursive(int n) {
if (n <= 0) {
return 0;
} else if (n == 1) {
return 1;
}
return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2);
}
int fibonacci_iterative(int n) {
if (n <= 0) { return 0; }
if (n == 1) { return 1; }
int a = 0;
int b = 1;
int current_fib = 0;
for (int i = 2; i <= n; ++i) {
current_fib = a + b;
a = b;
b = current_fib;
}
return current_fib;
}