首页 > 编程语言 >递归算法;求n的阶层

递归算法;求n的阶层

时间:2023-04-14 22:01:35浏览次数:31  
标签:阶层 return 递归 factorial int 算法 main public

java:

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        String a=sc.next();
        int b=Integer.parseInt(a);
        System.out.print(factorial(b));
    }
    public static int factorial(int a){
        if(a==1){
            return a;
        }else{
            return factorial(a-1)*a;
        }
    }
}

C:(main函数最好在最后面或者使用函数声明)

#include <stdio.h>

long factorial(int a){
    if(a==1){
    return a;
    }
    else{
        return factorial(a-1)*a;
    }
}
int main()
{
    int a;
    scanf("%d",&a);
    printf("%d",factorial(a));
   return 0;
}

如何逐层进入,又是如何逐层退出的。

每一个递归函数都应该只进行有限次的递归调用,否则它就会进入死胡同,永远也不能退出了,这样的程序是没有意义的。

存在限制条件,当符合这个条件时递归便不再继续。对于 factorial(),当形参 n 等于 1 时,递归就结束了。每次递归调用之后越来越接近这个限制条件。对于 factorial(),每次递归调用的实参为 n - 1,这会使得形参 n 的值逐渐减小,越来越趋近于 1 。

标签:阶层,return,递归,factorial,int,算法,main,public
From: https://www.cnblogs.com/lin-07/p/17319939.html

相关文章

  • 极简cfs公平调度算法
    1.说明1>linux内核关于task调度这块是比较复杂的,流程也比较长,要从源码一一讲清楚很容易看晕2>本篇文章主要是讲清楚cfs公平调度算法如何将task在时钟中断驱动下切换调度,所以与此无关的代码一律略过3>本篇只讲最简单的task调度,略过组调度,组调度在下一篇《极简组调度-CGroup......
  • 基于L2-RLS算法的目标跟踪算法matlab仿真,可处理小范围遮挡问题
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要目标表观模型是跟踪器的重要组成部分,用来描述目标表观的特征.基于判别式模型的表观模型用来区分目标和背景;基于生成式模型的表观模型用来描述目标本身,提取出目标的特征.本文合理地融合了判别式模型和生成式模型......
  • 基于人工鱼群优化的电网规划算法matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要人工鱼群算法(ArtificialFishSwarmAlgorithm,简称AFSA)是受鱼群行为的启发,由国内李晓磊博士于2002年提出的一种基于动物行为的群体智能优化算法,是行为主义人工智能的一个典型应用,这种算法源于鱼群的觅食行为。......
  • 基于L2-RLS算法的目标跟踪算法matlab仿真,可处理小范围遮挡问题
    1.算法仿真效果matlab2022a仿真结果如下:            2.算法涉及理论知识概要       目标表观模型是跟踪器的重要组成部分,用来描述目标表观的特征.基于判别式模型的表观模型用来区分目标和背景;基于生成式模型的表观模型用来描述目标本身,提取......
  • 基于人工鱼群优化的电网规划算法matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要       人工鱼群算法(ArtificialFishSwarmAlgorithm,简称AFSA)是受鱼群行为的启发,由国内李晓磊博士于2002年提出的一种基于动物行为的群体智能优化算法,是行为主义人工智能的一个典型应用,这种算法源......
  • 代码随想录算法训练营Day01 | LeetCode704 二分查找、Leetcode27 移除元素
    今日学习的视频和文章代码随想录数组基础复习基础知识代码随想录二分查找代码随想录移除元素LeetCode704二分查找题目链接:704.二分查找-力扣(Leetcode)以前学二分查找的时候,真的一直搞不清楚怎么操作左边界和有边界,以及循环的终止条件是什么,总是自己慢慢调试出来,......
  • Weka数据挖掘Apriori关联规则算法分析用户网购数据
    全文链接:http://tecdat.cn/?p=32150原文出处:拓端数据部落公众号随着大数据时代的来临,如何从海量的存储数据中发现有价值的信息或知识帮助用户更好决策是一项非常艰巨的任务。数据挖掘正是为了满足此种需求而迅速发展起来的,它是从大量的、不完全的、有噪声的、模糊的、随机的数据......
  • 两个循环搞定多级菜单列表递归成tree
    菜单类publicstaticclassMenu{Menu(Stringdata){String[]split=data.split("");this.id=Integer.valueOf(split[0]);this.name=split[1];this.pid=Integer.valueOf(split[2]);......
  • 雪花算法中的时间回拨问题5种方案
    什么是时间回拨问题雪花算法通过时间来即将作为id的区分标准之一,对于同一台id生成机器,它通过时间和序号保证id不重复当机器出现问题,时间可能回到之前,此时,时间就不能区分又或者因为闰秒的出现,导致时间回拨如何解决方法1直接抛出异常不管3X7==21,直接抛出异常将问......
  • J8、Inception v1算法实战与解析
    ......