C语言 递归函数

递归函数 就是自身调用自身的函数,需要加条件来判定,否则无限调用 下面介绍一个简单的例子

 1 //递归函数整理
 2 long fun(int n)
 3 {
 4     long s;
 5     if(n==1||n==2)
 6         s=2;
 7     else
 8         s=n-fun(n-1);
 9
10     return s;
11 }
12
13 int main(int argc, const char * argv[])
14 {
15     printf("%ld",fun(6));
16     /*
17      = 6 - (5 - fun(4))
18      = 6 - (5 - (4 - fun(3)))
19      = 6 - (5 - (4 - (3 - fun(2))))
20      = 6 - (5 - (4 - (3 - 2)))
21      = 6 - (5 -4 + 3 - 2)
22      = 4
23      */
24     return 0;
25 }
时间: 2024-11-10 00:52:41

C语言 递归函数的相关文章

Go 语言递归函数

Go 语言递归函数 递归,就是在运行的过程中调用自己. 语法格式如下: 1 func recursion() { 2 recursion() /* 函数调用自身 */ 3 } 4 5 func main() { 6 recursion() 7 } Go 语言支持递归.但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中. 递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等. -----------------------------------------

GO语言学习(二十)Go 语言递归函数

Go 语言递归函数 递归,就是在运行的过程中调用自己. 语法格式如下: func recursion() { recursion() /* 函数调用自身 */ } func main() { recursion() } Go 语言支持递归.但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中. 递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等. 阶乘 以下实例通过 Go 语言的递归函数实例阶乘: package main import "fmt"

C语言递归函数讲解

递归函数是什么? 是函数.................... 你可以把它理解成是for循环与死循环的结合的函数.简单的说:递归函数是有条件终止的死循环函数: 死循环函数是指在函数体中调用自身: 举个列子: 用递归函数算出1*2*3*4*..........*n的值 int test_1(int n) { if(n==0) //终止递归函数的循环 retrun 1; //1*(最终值) = (最终值) else retrun test(n-1) *n;  //调用自身,参数-1,得到值,最后会

c语言递归函数的调用

int fun(); int main() { int n,sum=0,i; scanf("%d",&n); for (i=1; i<=n; i++) { sum+=fun(i); } printf ("%d/n",sum); } int fun (int m) { int a; if (m==1||m==2) a=1; else a=fun(m-1)+fun(m-2); return (a); }

Go语言之递归函数

Go 语言递归函数 递归,就是在运行的过程中调用自己. Go 语言支持递归.但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中. 递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等. package main import "fmt" func factorial(n uint64) uint64 { if n > 1 { return n * factorial(n-1) } return 1 } func main() { a :=

go语言基础教程

Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go是从2007年末由Robert Griesemer, Rob Pike, Ken Thompson主持开发,后来还加入了Ian Lance Taylor, Russ Cox等人,并最终于2009年11月开源,在2012年早些时候发布了Go 1稳定版本.现在Go的开发已经是完全开放的,并且拥有一个活跃的社区. Go 语言环境安装 Go 语言支持以下系统: Linux FreeBSD Mac OS X(也称为 Darwin)

05. Go 语言函数

Go 语言函数 函数是组织好的.可重复使用的.用来实现单一或相关联功能的代码段,其可以提高应用的模块性和代码的重复利用率. Go 语言支持普通函数.匿名函数和闭包,从设计上对函数进行了优化和改进,让函数使用起来更加方便. Go 语言的函数属于"一等公民"(first-class),也就是说: 函数本身可以作为值进行传递. 支持匿名函数和闭包(closure). 函数可以满足接口. Go语言函数声明(函数定义) 函数构成了代码执行的逻辑结构,在Go语言中,函数的基本组成为:关键字 fun

go语言教程

? Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言. 对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率.它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了. Go 语言教程 Go 语言环境安装 Go 语言结构 Go 语言基础语法 Go 语言数据类型 Go 语言变量 Go 语言运算符 Go 语言条件语句 Go 语言循环语句 Go 语言函数 Go 语言变量作用域 Go 语言数组 Go 语言指针 Go 语言结

Lambda演算 - 简述Y组合子的作用

Y组合子:\f.(\x.f(xx))(\x.f(xx)),接受一个函数,返回一个高阶函数 Y组合子用于生成匿名递归函数. 什么叫匿名递归函数,考虑以下C语言递归函数 int sum(int n) { return n == 0 ? 0 : n + sum(n-1); } 这个函数在内部递归调用了自身,调用自身需要函数本体的名字,这个函数叫sum,sum内部用名字sum,递归调用了自己 在lambda演算中,可以写成类似的表达式sum = \x. x == 0 ? 0 : sum x 但是对于一个