连加公式c语言程序,基于C语言连加连积类问题快速设计.doc

基于C语言连加连积类问题快速设计

基于C语言连加连积类问题快速设计

摘要:从循环结构的特点出发分析连加连积类问题,总结出数列中数据的构造规律,给出该类问题的编程模板,列举实例进一步验证该类问题的编程方法。该教学设计在我校C语言教学中,效果非常明显。

关键词:C语言;程序设计;连加;连积;模板

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)10-0069-03

C语言是目前使用最广泛的高级程序设计语言之一。C语言表达能力强、使用方便灵活,目标程序执行效率高、可移植性好,既可用于编写系统软件,也可用于编写应用软件[1-2]。因此很多高校把C语言作为理工类专业的计算机程序设计的入门语言。C语言包含了三种基本结构:顺序结构、选择结构和循环结构,其中循环结构的程序设计是最难的部分。笔者在讲解时,通常把问题进行分类,如连加和连积类、穷举类、迭代类、图案打印类等等。其中,连加和连积类是最基本的,也是学生必须掌握的基本编程技巧。但是,学生们在听老师讲课的时候基本上能够理解,但是自己动手编程实现时,往往就不能得到正确结果,有的问题甚至无从下手。究其原因,笔者认为主要是学生们没有真正理解循环结构的本质以及连加和连积类问题的特点。本文从循环结构的特点出发,多角度分析连加连积类问题,给出这类问题的编程模板,让读者能够准确快速地编程实现该类问题。

1 连加与连积类问题分析

连加与连积类问题核心是如何通过已知条件去构造数列中第[n]个数[Jn,1≤n]。如果每个数都能构造出来,那么把这个数进行连加和连乘就变得相当简单。已知条件通常是[Jn]的位序[n]以及[Jn]之前的数列[Jk,1≤k

1)[Jn]仅仅与其位序[n]有关,即[Jn=f(n)]。

2)[Jn]仅仅通过前面已经得到的序列[Jk]构造,即[Jn=f(Jk),1≤k

3)[Jn]不仅与其位序[n]有关,而且还与前面已经得到的序列[Jk]有关,[Jn=f(n,Jk)]。

4)[Jn]不能由上述三个式子构造出来,但是[Jn]中的一部分[J'n]却可以,而且[J'n]一旦得到,那么[Jn]也就得到了。

2 连加与连积类问题模板代码设计

当把数列的[Jn]项是如何构造的分析出来之后,接下来就可以设计模板代码了。

首先以连加类问题为例分析编码步骤:

2.1连加类问题模板代码设计步骤

1)定义三个变量[i,j,sum]。其中[i]表示位序,即当前进行累加的数是数列中第几项,[j]表示参加累加的数,[sum]是累加器。根据具体题目,为[i,j,sum]选择合适的数据类型,并对其进行如下初始化:[i=1],[ j=]数列中的首项,[sum=0]。

2)建立循环条件表达式。根据题目,判断循环是基于“次数”已知的循环,还是基于“一直连加,直到某一项满足某个条件就停止”的循环。对于“次数”已知的循环,则其循环条件表达式写成[i≤=次数];对于“一直连加,直到某一项满足某个条件就停止”的循环,则其循环条件表达式写成“[j]满足的条件”。

3)写模板代码。

这段模板代码中,最核心的是“如何构造下一次运算的[j]”。

2.2连积类问题模板代码设计

连积类问题与连加类问题很相似,主要是把连加类问题的步骤(1)的[sum]改成[sum=1],把步骤(3)的[sum+=j]改成[sum*=j]。另外,因为连乘容易导致[sum]值超出int类型范围,所以在连加类问题中定义成int类型的问题,在连乘类问题里,可能要改成double范围。

3 案例验证

为了让读者更好地理解上述方法,本节列举多个实例进行讲解。

例1:求下列数列前10项和。

分析:从题目中可以看出:[Jn=f(n)=Jn-1*10+a];因为是求前10个数之和,即循环次数是已知的,所以循环条件表达式写成[i≤=10]。定义三个整型变量并且初始化[i,j,sum],依据模板代码,本题的代码如下:

int i=1,j=2/*数列的首项是2*/,sum=0;

[a+aa+…+a…a]

分析:从题目中可以看出:[Jn=fn=Jn-1*10+a];因为是求前n个数之和,即循环次数是已知的,所以循环条件表达式写成[i≤=n]。定义三个整型变量并且初始化[i,j,sum],依据模板代码,本题的代码如下:

对于模板代码中的核心j=j*10+a,读者要清楚=右边

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值