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 := factorial(3)
	fmt.Println(a)
}

斐波那契数列

package main

import "fmt"

func feibonaqie(n int) int {

	if n < 2 {
		return n
	}
	return feibonaqie(n-2) + feibonaqie(n-1)
}

func main() {
	var i int
	for i = 0; i < 10; i++ {
		fmt.Printf("%d\t", feibonaqie(i))
	}

}

原文地址:https://www.cnblogs.com/heych/p/12579545.html

时间: 2024-11-09 03:06:43

Go语言之递归函数的相关文章

c语言中递归函数真的好吗?

递归函数就是直接或者间接的调用自己本身的函数. 接触递归的时候我们经常会看到这个程序 #include<stdio.h> #include<stdlib.h> long factorial(int n) {  if (n <= 0)   return 1;  else   return n*factorial(n - 1); } int main() {  int n = 5;  printf("%ld\n", factorial(n));  system

【C语言】递归函数DigitSum(n)

//写一个递归函数DigitSum(n),输入一个非负整数,返回组成它的数字之和, //例如,调用DigitSum(1729),则应该返回1+7+2+9,它的和是19 #include <stdio.h> int fuc(int x) { if(x!=0) return x%10+(fuc(x/10)); return 0; } int main() { printf("%d\n",fuc(2138)); return 0; }

C语言之递归函数

今天来总结一下关于递归函数的使用方面的问题. 递归函数就是在函数使用的时候自己调用自己,层层调用,来实现你想要的功能. 有两个最常用的例子,我们来写一下. (1)计算阶乘 #include <stdio.h> int factorial(int n); // 函数声明(阶乘) int main(void) { int a = 5; printf("%d的阶乘是:%d.\n", a, factorial(a)); return 0; } int factorial(int n

C语言:递归函数的使用

有这样一个题目:每瓶汽水1元,两个空瓶可以置换一瓶汽水,现在有20元,最多能喝多少瓶汽水. 分析题目可以得出,开始时有20个汽水瓶,这20个瓶子可以经过置换得到若干瓶汽水...因此,使用递归算法实现会很方便得出最多喝的汽水瓶数. 空瓶置换中,每使用两个瓶子可以换一瓶汽水,因此每次兑换后,瓶子数量减1. 基于这样的分析,可以用如下代码实现: #include<stdio.h> #include<assert.h> int exchange(int count){ count = co

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"

Go by Example: Recursion

Go语言支持递归函数.这里是一个经典例子:factorial 数列. package main import "fmt" // fact函数不断地调用自身,直到达到基本状态fact(0) func fact(n int) int { if n == 0 { return 1 } return n * fact(n-1) } func main() { fmt.Println(fact(7)) } 输出 <span style="font-size:18px;"

倒序--逆序=3 rwkj 1271

--> C语言:递归函数3(数组倒序) 时间限制(普通/Java):1000MS/3000MS          运行内存限制:65536KByte总提交:786            测试通过:347 描述 输入多个整数,以0结束,将这些整数逆序后输出. 要求:使用递归函数将数组倒序,在main中调用递归函数. 输入 多个整数,最后为0. 输出 逆序后的这些整数. 样例输入 1 2 5 4 01 2 3 4 5 6 7 8 9 0 样例输出 4 5 2 19 8 7 6 5 4 3 2 1 提

图灵机

图灵机(英语:Turing machine),又称确定型图灵机,是英国数学家艾伦·图灵于1936年提出的一种抽象计算模型,其更抽象的意义为一种数学逻辑机,可以看作等价于任何有限逻辑数学过程的终极强大逻辑机器. 目录 [隐藏] 1图灵的基本思想 2图灵机的正式定义 3图灵机的基本术语 4图灵机的例子 5通用图灵机 6图灵机的变体 7图灵可计算性 8其它等价的计算模型 9参考文献 10外部链接 图灵的基本思想 图灵的基本思想是用机器来模拟人们用纸笔进行数学运算的过程,他把这样的过程看作下列两种简单的