编写一个函数,输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1+1/3+...+1/n(利用指针函数)
时间: 2023-06-01 18:07:42 浏览: 116
好的,对于这个问题,我可以给出以下的代码示例:
```c++
#include <iostream>
using namespace std;
double *compute(int n){
double *sum = new double(0.0);
if(n % 2 == 0) {
for(int i = 2; i <= n; i += 2) {
*sum += 1.0 / i;
}
}
else {
for(int i = 1; i <= n; i += 2) {
*sum += 1.0 / i;
}
}
return sum;
}
int main()
{
int n = 6; // 偶数
double *sum = compute(n);
cout << "1/2 + 1/4 + ... + 1/" << n << " = " << *sum << endl;
delete sum;
n = 7; // 奇数
sum = compute(n);
cout << "1/1 + 1/3 + ... + 1/" << n << " = " << *sum << endl;
delete sum;
return 0;
}
```
上述代码中,我们定义了一个指针函数`compute`,它接受一个参数`n`,并返回一个指向`double`类型数据的指针。在函数中,我们通过判断`n`的奇偶性,分别计算不同的数列,并累加求和。最后返回累加和的指针。
在`main`函数中,我们分别调用了两次`compute`函数,并打印结果。需要注意的是,在使用完指针后,我们需要手动释放内存,以避免内存泄漏问题。
阅读全文