题目描述
求1-2/3+3/5-4/7+5/9-6/11+…的前n项和,结果保留3位小数。
输入
输入正整数n(n>0)。
输出
输出一个实数,保留3位小数,单独占一行。
样例输入
5
样例输出
0.917
此题与上题相比多了一个分子的变化,只需将分子变成一个变量递增便可
代码如下
#include<stdio.h>
#include<math.h>
int main()
{
int n,i=1,z=-1; //为控制变量i赋初值1,添加一个控制变量z控制每一项前面的符号
int molecule=1; //初始化分子为1
double j=1.0; //j为分母
double sum=0.0;
scanf("%d",&n); //一共n个整数
while(i <= n) //开始循环,i为控制变量,循环条件是i小于等于n
{
i++; //将i++前置使第一项符号为正
sum += pow(z,i)*(molecule/j);
molecule++; //分子每次递增1
j += 2; //分母每次递增2
}
printf("%.3lf",sum);
return 0;
}