函数
题目描述
编写一个函数,当输入 n n n为奇数时,求 1 1 + 1 3 + 1 5 + ⋯ + 1 n \frac 11+\frac 13+\frac 15+\cdots+\frac 1n 11+31+51+⋯+n1的值,当 n n n为偶数时,求 1 2 + 1 4 + ⋯ + 1 n \frac 12+\frac 14+\cdots+\frac 1n 21+41+⋯+n1的值。
输入描述
输入一个整数 n n n
输出描述
输出答案(保留两位小数)
样例
输入
2
输出
0.50
来源
C语言实验7——指针
C++实现
#include <iostream>
#include <iomanip>
using namespace std;
// 声明函数
double odd(int);
double even(int);
int main() {
int n;
cin>>n;
double (*fun)(int); // 指向函数的指针
if(n%2==0)
fun=even; // 如果是偶数
else
fun=odd; // 如果是奇数
cout<<fixed<<setprecision(2)<<fun(n); // 保留两位小数
return 0;
}
double odd(int n){
double ans=0;
for(int i=1; i<=n; i+=2)
ans+=1./i;
return ans;
}
double even(int n){
double ans=0;
for(int i=2; i<=n; i+=2)
ans+=1./i;
return ans;
}