输入一个正整数n,当n为偶数时,调用函数求1/2+1/4+...+1/n的值,当n为奇数时,调用函数求1+1/3+1/5+...+1/n的值。
时间: 2023-11-17 14:07:24 浏览: 179
以下是使用Python语言实现的代码:
```python
def sum_even(n):
"""
求1/2+1/4+...+1/n的值
"""
s = 0
for i in range(2, n+1, 2):
s += 1/i
return s
def sum_odd(n):
"""
求1+1/3+1/5+...+1/n的值
"""
s = 0
for i in range(1, n+1, 2):
s += 1/i
return s
n = int(input("请输入一个正整数:"))
if n % 2 == 0:
res = sum_even(n)
else:
res = sum_odd(n)
print("结果为:", res)
```
当输入一个偶数时,会调用`sum_even`函数计算1/2+1/4+...+1/n的值;当输入一个奇数时,会调用`sum_odd`函数计算1+1/3+1/5+...+1/n的值。最后输出计算结果。
相关问题
编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n.python
以下是 Python 代码实现:
```python
def sum_of_series(n):
if n % 2 == 0:
return sum([1/i for i in range(2, n+1, 2)])
else:
return sum([1/i for i in range(1, n+1, 2)])
```
函数 `sum_of_series(n)` 接受一个正整数 `n`,首先判断 `n` 是否为偶数。如果是偶数,使用列表推导式生成一个从 2 开始每隔 2 个数取一个的列表,然后对这个列表中的每个元素求倒数,最后求和并返回结果。如果 `n` 是奇数,使用列表推导式生成一个从 1 开始每隔 2 个数取一个的列表,然后对这个列表中的每个元素求倒数,最后求和并返回结果。
编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数 求1/1+1/3+...+1/n(要求利用函数指针编程)
以下是用C++语言编写的函数示例:
#include <iostream>
using namespace std;
double sum_even(int n); // 偶数求和函数
double sum_odd(int n); // 奇数求和函数
int main() {
int n;
double (*p)(int); // 定义函数指针
cout << "请输入一个正整数n:";
cin >> n;
if (n % 2 == ) {
p = sum_even; // 函数指针指向偶数求和函数
} else {
p = sum_odd; // 函数指针指向奇数求和函数
}
double result = (*p)(n); // 调用函数指针指向的函数
cout << "结果为:" << result << endl;
return ;
}
double sum_even(int n) {
double sum = ;
for (int i = 2; i <= n; i += 2) {
sum += 1. / i;
}
return sum;
}
double sum_odd(int n) {
double sum = ;
for (int i = 1; i <= n; i += 2) {
sum += 1. / i;
}
return sum;
}
在主函数中,首先定义了一个函数指针p,然后根据输入的n的奇偶性,将p指向相应的求和函数。最后调用函数指针指向的函数,得到结果并输出。
阅读全文