用C语言写:递归求2*6*8*10*...*n
时间: 2024-08-26 20:03:09 浏览: 40
在C语言中,我们可以使用递归来计算从2到n之间所有偶数的乘积。这是一个简单的示例,其中`factorial_even`函数负责递归计算:
```c
#include <stdio.h>
// 函数声明,用于保存中间结果
long long int factorial_even(int n);
// 递归函数实现
long long int factorial_even(int num) {
// 基线条件:如果num是2或者1,则返回1(因为2的任意次方都是2)
if (num == 2 || num == 1)
return 1;
else
// 递归情况:计算num和num-2的乘积
return num * factorial_even(num - 2);
}
int main() {
int n; // 用户输入的结束值
printf("请输入一个正整数n: ");
scanf("%d", &n);
// 确保n是正整数
if (n > 0) {
long long int result = factorial_even(n); // 计算并打印结果
printf("2 * 6 * 8 * ... * %d = %lld\n", n, result);
} else {
printf("输入错误,请输入正整数。\n");
}
return 0;
}
```
注意,这个程序只适用于计算偶数的乘积,如果你需要连续的偶数,那么在`factorial_even`内部判断应该修改为`if (num % 2 == 0)`。
阅读全文