自定义递归函数 sum ( int n )实现求1到 n 之间的偶数和并通过主函数调用输出值。要求输入 n : 样例1输入:6 输出:12 样例2输入:9 输出:20
时间: 2024-03-16 15:45:38 浏览: 99
以下是实现该功能的函数体:
```c
int sum(int n) {
if (n <= 0) {
return 0;
}
if (n % 2 == 0) {
return n + sum(n - 2);
}
return sum(n - 1);
}
```
通过主函数调用该函数并输出偶数和,代码如下:
```c
#include <stdio.h>
int sum(int n);
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
int res = sum(n);
printf("1到%d之间的偶数和为:%d\n", n, res);
return 0;
}
int sum(int n) {
if (n <= 0) {
return 0;
}
if (n % 2 == 0) {
return n + sum(n - 2);
}
return sum(n - 1);
}
```
输入样例1:
```
请输入一个正整数n:6
```
输出样例1:
```
1到6之间的偶数和为:12
```
输入样例2:
```
请输入一个正整数n:9
```
输出样例2:
```
1到9之间的偶数和为:20
```
相关问题
C语言 自定义递归函数现求1到n的偶数合
好的,我可以为您提供一个自定义递归函数来求1到n之间的偶数和。
代码如下:
```c
#include <stdio.h>
int sumOfEven(int n) {
if (n == 0) {
return 0;
} else {
int sum = sumOfEven(n-1);
if (n % 2 == 0) {
return sum + n;
} else {
return sum;
}
}
}
int main() {
int n;
printf("请输入一个正整数n:");
scanf("%d", &n);
int sum = sumOfEven(n);
printf("1到%d之间的偶数和为:%d\n", n, sum);
return 0;
}
```
这个函数名叫`sumOfEven`,它的参数是一个整数`n`,表示要求1到n之间的偶数和。如果n为0,那么直接返回0;否则,递归调用`sumOfEven(n-1)`,并将返回值保存在变量`sum`中。接着,判断n是否为偶数,如果是偶数则返回`sum+n`,否则只返回`sum`。
在主函数中,先读入一个正整数n,然后调用`sumOfEven(n)`函数求1到n之间的偶数和,并输出结果。
希望这个代码对您有所帮助!
用递归计算1/2+1/4+...+1/n。 编写一个递归函数,当输入的n为偶数时,求1/2+1/4+...+1/n的和。 ●编写函数even_sum(n),接收一个参数n,返回1/2+1/4+...+1/n; ●模块代码负责接收一个正整数,调用函数even_sum(),并将计算结果保留两位小数进行输出。
好的,以下是代码实现:
```python
def even_sum(n):
if n == 2:
return 0.5
elif n % 2 == 1:
return even_sum(n-1)
else:
return 1/n + even_sum(n-2)
n = int(input("请输入一个正整数:"))
result = even_sum(n)
print("1/2+1/4+...+1/{}的和为:{:.2f}".format(n, result))
```
这里使用了递归函数 `even_sum`,首先通过 `if` 语句判断是否到达递归终止条件,当 `n` 为 2 时,直接返回 0.5。对于其他情况,通过 `elif` 语句判断 `n` 是否为奇数,如果是奇数,则递归调用 `even_sum(n-1)`,即返回 `1/2+1/4+...+1/(n-1)` 的和。如果 `n` 为偶数,则递归调用 `even_sum(n-2)`,并加上 `1/n`,即返回 `1/2+1/4+...+1/n` 的和。
在模块代码中,首先通过 `input` 函数获取用户输入的正整数 `n`,然后调用 `even_sum` 函数计算结果,并使用字符串格式化输出结果,保留两位小数。
阅读全文
相关推荐















