计算1/2-2/3+3/4-…+19/20的值.

来源:互联网 发布:大众网络报2016停刊 编辑:程序博客网 时间:2024/06/05 19:58
/*  * Copyright (c) 2013, 烟台大学计算机学院 * All rights reserved. * 作    者: 李家豪 * 完成日期:2013 年11月11日 * 版 本 号:v1.0 * 问题描述:1/2-2/3+3/4-…+19/20* 样例输入:* 样例输出:0.668771.* 问题分析:*/ #include <iostream>using namespace std;int main( ){ int i,s=1;double sum=0; for(i=2;i<=20;++i){sum=sum+s*double(i-1)/i; //用s乘以被加的分数,考虑了待加项的符号s=-s;   //-是一目的负号运算符,获得s的相反数,以此将循环中在+1和-1间交替}cout<<"sum="<<sum<<endl;return 0;}


运行结果:

体会心得:这次是正负相间的,用pow(-1,i)的做法是效率很低的,我们可以专门设置一个变量s表示累加项的符号,取值随着循环,每次乘以-1,从而在+1、-1之间变化,循环加求和的累加要用累加的项(i/(i+1))乘以这个表示符号的s。

原创粉丝点击