[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 求给定精度的简单交错序列部分和的主要内容,如果未能解决你的问题,请参考以下文章

[PTA]实验10-5 递归求简单交错幂级数的部分和

练习4-3 求给定精度的简单交错序列部分和(15 分)

[PTA]实验2-3-6 求交错序列前N项和

[PTA]习题10-4 递归求简单交错幂级数的部分和

[PTA]实验4-1-6 求分数序列前N项和

[PTA]实验2-4-3 求平方根序列前N项和