找回密码
 立即注册
首页 业界区 安全 递归中Return实例分析

递归中Return实例分析

柏球侠 2025-6-9 13:47:19
函数递归


  • 局部函数变量的特性自成体系,作为调用函数自身
  • 递归函数不依靠任何外部资源,自成体系的迭代到基准值
return:返回特定的退出状态码,在函数结束时
  1. #! /bin/bash
  2. # using recursion
  3. # 计算阶乘,formula:x!=x*(x-1)!, 使用递归函数得到(x-1)!
  4. function factorial {
  5.     # 递归边界,根据1的阶乘是1
  6.         if [ $1 -eq 1 ]; then
  7.                 echo 1
  8.         else
  9.                 local temp=$[ $1 -1 ]
  10.         # 接收函数的输出,并将返回值传递给result
  11.                 local result=$(factorial $temp)
  12.                 echo $[ $result * $1 ]
  13.         fi
  14. }
  15. read -p "Enter value: " value
  16. # result与自成体系的递归函数不同, local局部变量
  17. result=$(factorial $value)
  18. echo "The factorial of $value is : $result"
复制代码
  1. ///: C:计算阶乘
  2. // 递归公式推导: m*(m-1)!
  3. #include <stdio.h>
  4. long fact(int num) {
  5.     long result,args;
  6.     if(num==1) {
  7. // 设置边界条件,底层回溯值
  8.         return 1;
  9.     } else {
  10.         args = num - 1;
  11.         result = fact(args);
  12.         return num * result;   
  13.     }
  14. }
  15. int main(void) {
  16.     int num, result;
  17.     printf("请输入一个要计算的阶乘数: ");
  18.     scanf("%d",&num);
  19.     result = fact(num);
  20.     printf("这个数的阶乘是: %d", result);
  21. }
复制代码
[code]// 通过逻辑与的短路特性作为简单if-else// 计算 1+2+...+9+10#include using namespace std;int add(int c);int main(){    add(10);    return 0;}int add(int c) {    int a = 0;    c && (a=add(c-1)); //函数自递归 底层调用return的另一种方式:终止函数    cout
您需要登录后才可以回帖 登录 | 立即注册