本题要求编写程序,计算交错序列 1-2/3+3/5-4/7+5/9-6/11+... 的前N项之和。
输入格式:
输入在一行中给出一个正整数N。
输出格式:
在一行中输出部分和的值,结果保留三位小数。
输入样例:
5
输出样例:
0.917
观察交错序列 1-2/3+3/5-4/7+5/9-6/11+...发现,
分子:1,2,3,4,5,6...
分母:1,3,5,7,9,11...
转化为代码:
int i;
double sum=0.0;
int t1=1;
int t2=1;
int temp=1;
for(i=1;i<=n;i++)
{
sum+=((double)t1/t2)*temp;
t1++;
t2+=2;
temp=-temp;
}
根据以上分析,给出参考代码如下:
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
int i;
if(n!=0){
double sum=0.0;
int t1=1;
int t2=1;
int temp=1;
for(i=1;i<=n;i++)
{
sum+=((double)t1/t2)*temp;
t1++;
t2+=2;
temp=-temp;
}
printf("%.3lf\n",sum);
}
return 0;
}