在编程语言的学习中,我们学习过不少的算法,比如累加,累乘,数值交换,排序等等。在一些软件比赛和面试题中,有一类算法不容忽视,属于高频题目,我之前去企业面试的时候就遇到这样的一类题目,题目不算难,掌握方法,很快可以做出来。这类算法叫做----级数算法。

级数计算的关键是“描述出通项”,而通项的描述法有两种:一为直接法、二为间接法又称递推法。

直接法的要领是:利用项次直接写出通项式;递推法的要领是:利用前一个(或多个)通项写出后一个通项。

可以用直接法描述通项的级数计算例子有:

(1)1+2+3+4+5+……

(2)1+1/2+1/3+1/4+1/5+……等等。

可以用间接法描述通项的级数计算例子有:

(1)1+1/2+2/3+3/5+5/8+8/13+……

(2)1+1/2!+1/3!+1/4! +1/5!+……等等。

(1)直接法求通项

打个比方,我写段代码:

例1、求1+1/2+1/3+1/4+1/5+……+1/100的和。

#include

int main(void)

{

float s; int i;

s=0.0; //程序中是利用项次的倒数直接描述出每一项,并进行累加。注意:因为是整数,所以分子必须写成浮点数1.0的形式

for(i=1;i<=100;i++)

{

s=s+1.0/i ;

}

printf("1+1/2+1/3+...+1/100=%f\n",s);

return 0 ;

}运行结果:

例2:间接法求通项

这种方法也叫做递推法

例如:

计算下列式子前20项的和:1+1/2+2/3+3/5+5/8+8/13+……。

#include

int main(void)

{

float sum,fz,fm,t,fz1; int i;

sum=1; /*先将第一项的值赋给累加器s*/

fz=1;fm=2;

t=fz/fm; /*将待加的第二项存入t中*/

for(i=2;i<=20;i++)

{

sum=sum+t;

/*以下求下一项的分子分母*/

fz1=fz; /*将前项分子值保存到fz1中*/

fz=fm; /*后项分子等于前项分母*/

fm=fz1+fm; /*后项分母等于前项分子、分母之和*/

t=fz/fm;

}

printf("1+1/2+2/3+...=%f\n",sum);

}运行结果:

例三:计算级数

的值,当通项的绝对值小于eps时计算停止。

#include

#include

//求出最终的结果

float result(float x,float eps);

int main(void)

{

float x,eps;

scanf("%f%f",&x,&eps);

printf("\n%f,%f\n",x,result(x,eps));

return 0 ;

}

float result(float x,float eps)

{

int n=1;float s,t;

s=1; t=1;

do { //以下t为递推算法部分

t=t*x/(2*n);

s=s+(n*n+1)*t;

n++;

}while(fabs(t)>eps);

return s;

}运行结果:

本文同步分享在 博客“Engineer-Bruce_Yang”(CSDN)。

如有侵权,请联系 support@oschina.cn 删除。

本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

c语言计算级数,C语言之数值计算--级数算法相关推荐

  1. java语言计算圆周率_Java语言简单计算圆周率完整示例

    本文实例讲述了Java语言简单计算圆周率完整示例.分享给大家供大家参考,具体如下,希望对大家学习Java语言简单计算圆周率有所帮助. 这两天在网上看到一个题,已知Pi可以用函数4 * (1 – 1/3 ...

  2. 用python语言计算矩阵_Python语言实现矩阵计算

    本文主要向大家介绍了Python语言实现矩阵计算,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 矩阵其实就是二维数组 这里用Python模拟一下矩阵运算的加法和乘法(Python ...

  3. c语言计算个人所得税作业,写一个程序,输入任何一个公民的月收入和五险一金,能够计算他应缴纳的个人所得税.用C语言...

    问题描述: 写一个程序,输入任何一个公民的月收入和五险一金,能够计算他应缴纳的个人所得税.用C语言 3.我国的个人所得税实行累进税率,计算办法是:用全月应纳税所得额分为几个级别,分别乘以累进税率,几个 ...

  4. c语言程序设计足球,使用C语言计算与模拟足球射门.doc

    使用C语言计算与模拟足球射门[4] 1 引言 C语言是近年来在国内外得到迅速推广应用的一种计算机语言.C语言功能丰富.使用灵活方便.应用面广.目标程序效率高.可移植性好,既有高级语言的优点,又有低级语 ...

  5. c语言足球从100米下落,使用c语言计算与模拟足球射门.docx

    使用C语言计算与模拟足球射门 [4] 1引言 c语言是近年来在国内外得到迅速推广应用的一种计算机语言.c语言功能丰富.使用 灵活方便.应用面广.目标程序效率高.可移植性好,既有高级语言的优点,又有低级 ...

  6. 汉诺塔怎么加计数次数c语言,C语言计算汉诺塔最小移动步数 (二)

    前几天写的:C语言计算汉诺塔最小移动步数(一) 当时还不知道用2^n-1这个公式来求解汉诺塔移动步骤.=_= 偶然间在网上发现了这个公式,发现当时写的算法还是比较繁琐的.所以又根据这个公式又写了一个. ...

  7. R语言计算曼哈顿距离(Manhattan Distance)实战:计算两个向量的曼哈顿距离、dist函数计算矩阵中两两元素的曼哈顿距离

    R语言计算曼哈顿距离(Manhattan Distance)实战:计算两个向量的曼哈顿距离.dist函数计算矩阵中两两元素的曼哈顿距离 目录 R语言计算曼哈顿距离(Manhattan Distance ...

  8. R语言计算杰卡德相似系数(Jaccard Similarity)实战:自定义函数计算Jaccard相似度、对字符串向量计算Jaccard相似度、将Jaccard相似度转化为Jaccard距离

    R语言计算杰卡德相似系数(Jaccard Similarity)实战:自定义函数计算Jaccard相似度.对字符串向量计算Jaccard相似度.将Jaccard相似度转化为Jaccard距离 目录 R ...

  9. R语言计算平均值的标准误差(standard error of the mean):自定义函数计算平均值的标准误差、使用plotrix包的std.error函数计算平均值的标准误差

    R语言计算平均值的标准误差(standard error of the mean):自定义函数计算平均值的标准误差.使用plotrix包的std.error函数计算平均值的标准误差 目录

  10. R语言计算回归模型每个样本(观察、observation、sample)的DFFITS度量实战:忽略单个观察(样本)时,回归模型所做的预测会发生多大的变化

    R语言计算回归模型每个样本(观察.observation.sample)的DFFITS度量实战:忽略单个观察(样本)时,回归模型所做的预测会发生多大的变化 目录

最新文章

  1. linux snmp磁盘io,cacti利用snmpdiskio 监控服务器磁盘
  2. iso8601时间格式_ISO8601与dayjs的使用
  3. st 串口烧写工具 芯片_STM32芯片的几种烧写方式简介
  4. java学习与总结:多线程与并发
  5. .mb是什么文件_神经网络长什么样不知道? 这有一份简单的 pytorch可视化技巧(1)
  6. How to start MySQL on Linux
  7. python实现统计你一共写了多少行代码
  8. 【nodejs原理源码赏析(1)】Express中间件系统的基本实现
  9. 终于搞懂了网红主播的套路
  10. 《我的世界》AI大战降临:6000万帧超大数据集已发布,NeurIPS 19向你约战
  11. eltable 无数据文案修改_el-table的二次封装详细版(一)
  12. gazebo 直接获取传感器数据_如何以最简单的方式获取传感器数据?
  13. JAVA 实现《超级玛丽》游戏
  14. 【三星笔试】给定一些汽油E,给定一段距离D,完成D这段距离...
  15. 计算机一级win7win10,Win7/Win8.1升级Win10出现黑屏/蓝屏怎么办
  16. 网页特效--图片淡入淡出效果
  17. 我的第一个WFF项目
  18. 新中大服务器端数据库未能连接,新中大服务器数据库未能连接
  19. 清微智能CTO欧阳鹏:架构创新是通往高性能计算芯片必由之路|量子位·视点分享回顾...
  20. 顶级程序员常用的 14 个开源框架,YYDS!

热门文章

  1. tp5 JWT生成token验证接口安全、防止高频请求
  2. cubase外放有声音耳机没声音_为何CUBASE耳机内没有声音
  3. 《匆匆那年》的你,还记得吗?数学中的那些有(hui)趣(se)的定理(14)——毛球定理(Hairy ball theorem)
  4. Java之多线程Runnable(2)卖烤鸭-yellowcong
  5. Codeforces Round #703 (Div. 2)A. Shifting Stacks
  6. html5 url 传参数,[实时数据]仪表板URL直接添加参数条件传参
  7. Redis:配置文件
  8. 微信二次分享解决方案
  9. 基于jsp的KTV管理系统mysql
  10. 用JAVA写一个俄罗斯方块游戏tetrisGame