自从开始写每日一题以后就没动过PTA了,今天写一个题
如有错误,欢迎指正
目录
题目
本题要求编写程序,计算交错序列 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
而加减号在数学中是-1的n次方,但是在编程中我们可以用一个变量来表示
先定义k=1,每次累加完对k进行取负(k=-k)
代码
#include<stdio.h>
int main()
{
int n;
double i=1.0,j=1.0;
int k=1;
double sum=0.0;
scanf("%d",&n);
while(i<=n){
sum+=i/j*k;
k=-k;
i++;
j=j+2;
}
printf("%.3f",sum);
return 0;
}
注意:
sum 要定义成浮点数
i 和 j 之间一定要有一个定义成浮点数,不然你就会发现答案一直不对(别问我是怎么知道的)