c语言递归递推,c语言递推与递归

本文目录一览:

有关C语言用递推方法的问题

递推算法是一种用若干步可重复运算来描述复杂问题的方法.递推是序列计算机中的一种常用算法。它是按照一定的规律来计算序列中的每个项,通常是通过计算机前面的一些项来得出序列中的指定象的值。其思想是把一个复杂的庞大的计算过程转化为简单过程的多次重复,该算法利用了计算机速度快和不知疲倦的机器特点。

【例】

植树节那天,有五位同学参加了植树活动,他们完成植树的棵树都不相同。问第一位同学植了多少棵时,他指着旁边的第二位同学说比他多植了两棵;追问第二位同学,他又说比第三位同学多植了两棵;… 如此,都说比另一位同学多植两棵。最后问到第五位同学时,他说自己植了10棵。到底第一位同学植了多少棵树?

分析:设第一位同学植树的棵树为a1,欲求a1,需从第五位同学植树的棵数a5入手,根据“多两棵”这个规律,按照一定顺序逐步进行推算:

(1) a5=10;

(2) a4=a5+2=12;

(3) a3=a4+2=14;

(4) a2=a3+2=16;

(5) a1=a2+2=18;

使用这种方法,

第一步先例举一些关系式,找到规律,或者说找到通项公式

第二步找到结束程序的条件值

找到后直接用

if(结束条件)

return 结束时的值

else 通项公式

return 最后的返回值

把这个直接填到被调函数里面就可以了

C语言中的递归是什么意思

递归就是递推公式的模拟

函数直接间接的调用自己,一直到可以直接得到结果为止。

必须有一个可以不用递归,直接完成的情况。并且总是能够达到。

不然就是害自己了,你的程序永不结束,直到堆栈空间用完,程序或系统崩溃,莫名奇妙的退出。

真正的程序里,不会出现 阶乘运算、级数运算、幂指数运算等方面使用递归的代码。

这些完全可以使用迭代,而且高效。

递归用在树,图这样的数据结构上以及一些排序算法上,非常自然,而非递归算法却比较难懂,而且还不好实现.

你这个怎么这么象二叉树的先根遍历。

C语言用递推和递归两种算法完成斐波那契数列的计算,给一下代码

//递归法

int fibo1(int n)

{

if( n == 1 || n == 2) return 1;

else return fibo1(n-1)+fibo1(n-2);

}

//递推法

int fibo2(int n)

{

int f0=1,f1=1,f;

if (n2)

return 1;

for(int i=2;in-1;i++)

{

f=f0+f1;

f0=f1;

f1=f;

}

return f;

}

区别:递推是直接使用已知的条件去推出未知的条件;递归则是将大问题逐渐转化为若干个相同的子问题,直到得到已知的最小子问题,再回溯依次得到父问题的答案。是由未知到已知,再从已知到未知。对于复杂的问题,递归把问题简单化,读起来易懂。

C语言递推与递归的区别

递推:知道第一个,推出下一个,直到达到目的。

递归:要知道第一个,需要先知道下一个,直到一个已知的,再反回来,得到上一个,直到第一个。

原创文章,作者:XQGN,如若转载,请注明出处:https://www.506064.com/n/137367.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
XQGNXQGN
上一篇 2024-10-04 00:17
下一篇 2024-10-04 00:17

相关推荐

  • AES加密解密算法的C语言实现

    AES(Advanced Encryption Standard)是一种对称加密算法,可用于对数据进行加密和解密。在本篇文章中,我们将介绍C语言中如何实现AES算法,并对实现过程进…

    编程 2025-04-29
  • 学习Python对学习C语言有帮助吗?

    Python和C语言是两种非常受欢迎的编程语言,在程序开发中都扮演着非常重要的角色。那么,学习Python对学习C语言有帮助吗?答案是肯定的。在本文中,我们将从多个角度探讨Pyth…

    编程 2025-04-29
  • Python被称为胶水语言

    Python作为一种跨平台的解释性高级语言,最大的特点是被称为”胶水语言”。 一、简单易学 Python的语法简单易学,更加人性化,这使得它成为了初学者的入…

    编程 2025-04-29
  • OpenJudge答案1.6的C语言实现

    本文将从多个方面详细阐述OpenJudge答案1.6在C语言中的实现方法,帮助初学者更好地学习和理解。 一、需求概述 OpenJudge答案1.6的要求是,输入两个整数a和b,输出…

    编程 2025-04-29
  • Python按位运算符和C语言

    本文将从多个方面详细阐述Python按位运算符和C语言的相关内容,并给出相应的代码示例。 一、概述 Python是一种动态的、面向对象的编程语言,其按位运算符是用于按位操作的运算符…

    编程 2025-04-29
  • 台阶走法递归

    台阶走法递归是一个经典的递归问题,在计算机算法中有着广泛的应用。本篇文章将从递归的思想出发,详细分析如何解决这个问题。 一、递归基础知识 递归是指一个函数直接或间接地调用自身。递归…

    编程 2025-04-29
  • MySQL递归函数的用法

    本文将从多个方面对MySQL递归函数的用法做详细的阐述,包括函数的定义、使用方法、示例及注意事项。 一、递归函数的定义 递归函数是指在函数内部调用自身的函数。MySQL提供了CRE…

    编程 2025-04-29
  • Python语言由荷兰人为中心的全能编程开发工程师

    Python语言是一种高级语言,很多编程开发工程师都喜欢使用Python语言进行开发。Python语言的创始人是荷兰人Guido van Rossum,他在1989年圣诞节期间开始…

    编程 2025-04-28
  • Python语言设计基础第2版PDF

    Python语言设计基础第2版PDF是一本介绍Python编程语言的经典教材。本篇文章将从多个方面对该教材进行详细的阐述和介绍。 一、基础知识 本教材中介绍了Python编程语言的…

    编程 2025-04-28
  • Python语言实现人名最多数统计

    本文将从几个方面详细介绍Python语言实现人名最多数统计的方法和应用。 一、Python实现人名最多数统计的基础 1、首先,我们需要了解Python语言的一些基础知识,如列表、字…

    编程 2025-04-28

发表回复

登录后才能评论