c语言递归函数实例 c语言递归函数的例题

C语言中自我递归的几个例子

递归主要元素:入口,递归和结束。在定义递归函数时将这三个元素考虑进去就行;如: double callnext(int n)

网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、重庆小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了郸城免费建站欢迎大家使用!

{

if(n1) return callnext(n-1)+3;

else return 1;

}

int main()

{

int m;

scanf("%d",m);

printf("result=%f",callnext(m));

return 0;

}

入口:callnext(m);递归:if(n1) return callnext(n-1)+3中的callnext(n-1);结束:else return 1;整个执行流程:callnext(m) 调用 callnext(m-1);callnext(m-1)调用callnext(m-1-1)。。。

callnext(2)调用callnext(1);callnext(1)=1;结束;

c语言 函数递归调用的简单例子

举一个用递归调用函数求输入非负整数的阶乘的例子,如下:

//#include "stdafx.h"//If the vc++6.0, with this line.

#include "stdio.h"

int fact(int n){

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

else return n*fact(n-1);

}

int main(void){

int x;

while(1){

printf("Input x(int 12=x=0)...\nx=");

if(scanf("%d",x),x=0  x=12)//x12时会使结果溢出

break;

printf("Error,redo: ");

}

printf("%d! = %d\n",x,fact(x));

return 0;

}

c语言中,什么是函数的递归,能举个例子么

所谓递归,说的简单点,就是函数自己调用自己,然后在某个特定条件下。结束这种自我调用。

如果不给予这个结束条件,就成了无限死循环了。这样这个递归也就毫无意义了。

如下面问题

1 1 2 3 5 8 13 21 ........n

分析可以看出, i 表示第几个数, n 表示该数的值

当i = 1 时, n = 1;

当i = 2 时, n = 1;

当i = 3 时 n = i1 + i2;

当i = 4 时 n = i2 + i3

所以可以写个函数

int fun(int n) // 这里的n代表第几个数

{

if(1 == n || 2 == n) // 第一个数

{

return 1;

}

else

{

return fun(n - 1) + fun(n - 2); // 这里就是自己调用自己,形成循环自我调用。

}

}

注: 以上代码只是用来演示递归,不包含错误校验。

在实际生产过程中。该代码不够健壮。

如此,就完成了递归。你就可以求得第n个数了。

何时考虑使用递归。

当你分析一个问题的时候,发现这个问题,是一个自我循环时,而且这个自我循环到一个给定值,就可以终止的时候,你就快要考虑递归了。

C语言中递归调用的实例以及讲解。

下面演示一个斐波那契数列前N项和#include stdio.h

#define COL 10 //一行输出10个

long scan()

{ //输入求fibonacci函数的第N项

int n;

printf("Input the N = ");

scanf("%d",n);

return n;

}

long fibonacci(int n)

{ //fibonacci函数的递归函数

if (0==n||1==n) { //fibonacci函数递归的出口

return 1;

}

else {

return fibonacci(n-1)+fibonacci(n-2);

//反复递归自身函数直到碰到出口处再返回就能计算出第n项的值

}

}

int main(void)

{

int i,n;

n = scan();

printf("Fibonacci数列的前%d项\n", n);

for (i=0; in;) //输出fibonacci函数前n项每项的值

{

printf("%-10ld",fibonacci(i++)); //调用递归函数并且打印出返回值

if(i%COL==0)

{ //若对COL取余等于0就换行,也就是控制每行输出多少个,

//而COL=10就是每行输出10个

printf("\n");

}

}

printf("\n");

return 0;

}


标题名称:c语言递归函数实例 c语言递归函数的例题
标题网址:http://bzwzjz.com/article/dojhsde.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 盐亭网站设计 手机网站制作 网站设计制作报价 重庆网站建设 重庆网站制作 高端网站设计 成都网站设计 网站建设推广 成都网站建设公司 成都企业网站建设 成都网站建设 四川成都网站建设 四川成都网站制作 网站建设方案 成都网站制作 成都商城网站建设 成都网站设计公司 网站建设改版 手机网站制作 成都网站建设 网站建设方案 重庆网站设计