[PTA]实验4-1-8 求给定精度的简单交错序列部分和
Posted Spring-_-Bear
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[PTA]实验4-1-8 求给定精度的简单交错序列部分和相关的知识,希望对你有一定的参考价值。
本题要求编写程序,计算序列部分和 1 - 1/4 + 1/7 - 1/10 + … 直到最后一项的绝对值不大于给定精度eps。
输入格式:
输入在一行中给出一个正实数eps。
输出格式:
在一行中按照“sum = S”的格式输出部分和的值S,精确到小数点后六位。题目保证计算结果不超过双精度范围。
输入样例1:
4E-2
输出样例1:
sum = 0.854457
输入样例2:
0.02
输出样例2:
sum = 0.826310
- 提交结果:
- 源码:
#include<stdio.h>
#include<math.h>
int main(void)
{
int denominator, flag; //denominator为分母,flag控制每项的符号
double eps, item, sum; //eps为精度,item为某一项的值
int i;
scanf("%lf", &eps);
sum = 0;
denominator = flag = 1;
item = flag * 1.0 / denominator;
if (eps >= 1) //如果精度大于等于,则所有的从第二项开始,所有项的值均小于所给精度eps,则sum的值即为第一项的值
{
sum += item;
printf("sum = %.6f\\n", sum);
}
else
{
while (fabs(item) > eps)//根据ISO C / C++的标准规定,C语言的abs函数仅仅支持整数的绝对值计算,必须使用fabs才能获得浮点数的绝对值;
{
item = flag * 1.0 / denominator; //计算第1,2,3·····项的值
sum += item; //累加求和
flag = -flag;
denominator += 3;
}
printf("sum = %.6f\\n", sum);
}
return 0;
}
以上是关于[PTA]实验4-1-8 求给定精度的简单交错序列部分和的主要内容,如果未能解决你的问题,请参考以下文章