您好, 访客   登录/注册

递推法在C语言项目实践中的应用技巧

来源:用户上传      作者:唐小健

  摘 要: 通过详述两个典型的项目实践问题的解决思路,由浅入深的探究递推法在C语言项目实践中的应用及其技巧问题,最终达到会用进而善用递推法求解各种项目实践问题,从而提高独立应用C语言编程解决各种实际问题的能力。
  关键词: 递推法; C语言; 项目实践; 应用; 技巧
  中图分类号:G712 文献标识码:A 文章编号:1006-8228(2022)08-75-05
  Application skills of recursive method in C language project practice
  Tang Xiaojian
  (Guangdong Shaoguan secondary vocational and technical school, Shaoguan, Guangdong 512000, China)
  Abstract: In this paper, by detailing the project practice of two typical problem solution, recursive method in the application of C language program practice and its skills are explored, and finally the ability to make good use of recursion method to solve various project practice problems is achieved. Thus the independent application of C language programming ability to solve various practical problems is improve.
  Key words: recursive method; C language; project practice; application; skills
  0 引言
  所谓递推法就是给定某个初始值,或称为旧值,归纳出新值和旧值之间的内在联系,如此不停地一直运算下去,直到得出需要的数值。这里需要知道的是新值的求出要看旧值的求出,如果旧值无法求出,那么新值也就无法推导出来。这跟数学上的递推公式是同一类问题。
  从以上对递推法的阐述,要使用递推法进行求解问题,关键是在确定初始值的基A上,如何找出新值和旧值之间的内在联系即运算规律是关键,规律找出来了,就可以顺利的进行递推,得到解题结果就是时间问题了。所以说,只要找出其中的数的运算规律,可以说项目实践成功了一大半。下面在详述项目的解题过程中,着重对数据之间的关系以及递推的具体实现进行分析和探究。
  1 项目实践1:递推法解决斐波那契数列问题
  1.1 项目任务
  打印输出斐波那契数列的前40项。斐波那契数列的前几项是:1,1,2,3,5,8,13,21,34,…。输出格式是每行输出4个数[1,2]。
  1.2 项目分析
  初看斐波那契数列的前几项,相邻的数之间或前后数之间好像没有任何内在的关系,第一项是1,第二项还是1,第三项是2,第四项是3,第五项是5,……。可是只要仔细分析,其数据之间的内在联系即规律也就一目了然了,原来,斐波那契数列的分布规律是:从第三项开始,每个数等于前面两个数之和。
  对于这个“简单”的问题,在C语言编程教学中需要用递推法来实现,下面详述了这个问题。
  用变量a,b和c来描述递推过程,可以把这三个变量当做会移动的指针或者游标。现在把数列的第一项数值1赋值给变量a,把数列的第二项数值1赋值给变量b。此时变量a指向第一个数1,变量b指向第二个数1。把前面两个数相加的结果赋值给变量c,即c=a+b,此时变量c指向第三个数2,如图1所示。
  上面只是得到第一个新值(第三个数2),那么,又如何得到第二个新值(第四个数3)呢?上面说到可以把变量当做指针来操作,如果把变量a,b从左顺序向右移动一个位置,又进行c=a+b赋值操作,此时的变量c指向第四个数3,如图2所示。
  按照这个规律顺序向右移动变量a和b一个位置,进行c=a+b操作,变量c也随之向右移动一个位置,变量c代表的是递推出来的一个个的“新值”,如果进行输出,那问题不就得到解决了吗。
  仔细观察上面的运算分析图可以很清晰的发现,变量a,b及c的递推承接关系,变量a,b、c顺序指向相邻的三个数,不管怎么移动,移动几次,执行的都是c=a+b操作,关键是变量a,b及c不是固定不变的,随着指向不同位置上的数值,变量的值也是随之改变的。分析上面的运算分析图可以很容易确定变量a,b及c的递推承接关系:
  a=b
  b=c
  确定了变量的递推关系表达式,就可以动手编写具体的C程序代码了。
  1.3 项目实践的C语言程序框架设计
  可以先定义好基本类型整型变量a、b、c、t及count,变量a、b、c用来指向斐波那契数列中的相邻的三个数,变量t用来控制变量移动的次数。因为前两项预先已经输出,要求输出40项,因此只要从左向右顺序移动的次数是38次,也即变量t的控制范围是[1,38],用C语言中的循环控制语句for就可以实现。变量count是个计数器,用来统计数列中数的个数,控制每行输出四个数,赋初值为2(统计前两个数)。程序的总体框架可以设计如下:
  void mian()

nlc202208151706



转载注明来源:https://www.xzbu.com/8/view-15437588.htm

相关文章