柏球侠 发表于 2025-6-9 13:47:19

递归中Return实例分析

函数递归


[*]局部函数变量的特性自成体系,作为调用函数自身
[*]递归函数不依靠任何外部资源,自成体系的迭代到基准值
return:返回特定的退出状态码,在函数结束时
#! /bin/bash
# using recursion
# 计算阶乘,formula:x!=x*(x-1)!, 使用递归函数得到(x-1)!

function factorial {
    # 递归边界,根据1的阶乘是1
        if [ $1 -eq 1 ]; then
                echo 1
        else
                local temp=$[ $1 -1 ]
      # 接收函数的输出,并将返回值传递给result
                local result=$(factorial $temp)
                echo $[ $result * $1 ]
        fi
}

read -p "Enter value: " value
# result与自成体系的递归函数不同, local局部变量
result=$(factorial $value)
echo "The factorial of $value is : $result"///: C:计算阶乘
// 递归公式推导: m*(m-1)!

#include <stdio.h>

long fact(int num) {
    long result,args;

    if(num==1) {
// 设置边界条件,底层回溯值
      return 1;
    } else {
      args = num - 1;
      result = fact(args);
      return num * result;   
    }
}

int main(void) {
    int num, result;
    printf("请输入一个要计算的阶乘数: ");
    scanf("%d",&num);

    result = fact(num);
    printf("这个数的阶乘是: %d", result);
}// 通过逻辑与的短路特性作为简单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
页: [1]
查看完整版本: 递归中Return实例分析