Dart - 递归函数

Dart - 递归函数 首页 / Dart入门教程 / Dart - 递归函数

Dart递归是函数称为其子程序的方法。它用于通过将其划分为子部分来解决复杂问题。一次又一次地或递归地调用的函数,然后这个过程称为递归。

 void main() {  
   int factorial(int num){  
     
	  if(num<=1) { // base case  
	        return 1;  
	   }else{  
	        return n*fact(n-1);  
	   }       
	}  
}  

在上面的示例中,将基本情况定义为n <= 1,并且可以通过将较小的值更改为较小的值直到匹配基本情况来解决较大的数字值。

递归函数

递归函数与其他函数非常相似,但差异是递归调用自己。递归函数重复多次,直到返回最终输出。它允许程序员用最小的代码来解决复杂问题。

让我们了解给定数量的阶乘递归的概念。在以下示例中,我们将评估n个数字的阶乘。这是一系列乘法。

Factorial of n (n!) = n*(n-1)*(n-2)........1
Dart Recursion

    让我们来看看递归语法:

    void recurse() {
      //statement(s)
      recurse();
      //statement(s);
    }
    void main(){
       //statement(s)
       recurse();
      //statement(s)
    }

    让我们了解以下示例。

    int factorial(int num){
      
      //递归的基本情况。
      if(num<=1) {//base case
        return 1;
      }else{
        return num*factorial(num-1);    //函数调用本身。
     }
    }
    void main() {
      var num = 5;
     //存储函数调用的结果实际上是变量。
      var fact = factorial(num);
      print("Factorial Of 5 is: ${fact}");
    }

    输出:

    Factorial Of 10 is: 120

    在上面的示例中, factorial()是递归函数,因为它呼叫自身。当我们通过传递整数5来调用 factorial()函数时,它将通过减少数字来递归呼叫自身。

    每次都会调用factorial()函数,直到它匹配基本条件,或者它等于一。它将数字乘以数字的阶乘。考虑以下对递归调用的说明。

    factorial(5)              # 1st call with 5
    5 * factorial(4)          # 2nd call with 4
    5 * 4 * factorial(3)      # 3rd call with 3
    5 * 4 * 3 * factorial(2)  # 4th call with 2
    5 * 4 * 3 * 2 * 1         # return from 2nd call
    120                       # return from 1st call

    当数字减少到1时,递归结束,并且是递归的基本条件。

    无涯教程网

    链接:https://www.learnfk.comhttps://www.learnfk.com/dart-programming/dart-recursion.html

    来源:LearnFk无涯教程网

      祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

      技术教程推荐

      邱岳的产品实战 -〔邱岳〕

      NLP实战高手课 -〔王然〕

      罗剑锋的C++实战笔记 -〔罗剑锋〕

      分布式数据库30讲 -〔王磊〕

      人人都用得上的写作课 -〔涵柏〕

      爆款文案修炼手册 -〔乐剑峰〕

      React Hooks 核心原理与实战 -〔王沛〕

      程序员的个人财富课 -〔王喆〕

      郭东白的架构课 -〔郭东白〕

      好记忆不如烂笔头。留下您的足迹吧 :)