递归(recursion)

简介:

递归(recursion):简单来说就是在方法内部对自身进行调用。

 
递归求阶乘n!:
public  class Factorial { 
   public  static  void main(String[] args){ 
    System.out.println(factorial(9)); 
  } 
    
   //递归求阶乘n! 
   public  static  int factorial( int n){ 
     if(n==1||n==0){ 
       return 1; 
    } else
       return n*factorial(n-1); 
    } 
  } 

 
递归求 Fibonacci 数列: 1 1 2 3 5 8... 9 个数的值。数列满足递推公式:
    f(1)=1,f(2)=1     f(n)=f(n-1)+f(n-2)(n>2)
public  class Fibonacci { 
   public  static  void main(String[] args) { 
    System.out.println(fibonacci(9)); 
    System.out.println(noRecursionFibonacci(9)); 
  } 
   //递归求fibonacci的值 
   public  static  int fibonacci( int n){ 
     if(n==1||n==2){ 
       return 1; 
    } else
       return fibonacci(n-1)+fibonacci(n-2); 
    } 
  } 
   //非递归求fibonacci的值(迭代) 
   public  static  int noRecursionFibonacci( int n){ 
     if(n==1||n==2){ 
       return 1; 
    } 
     int f1 = 1; 
     int f2 = 1; 
     int f3 = 1; 
     for( int i=0;i<n-2;i++){ 
      f3 = f2+f1; 
      f1=f2; 
      f2=f3; 
    } 
     return f3; 
  } 









本文转自 yzzh9 51CTO博客,原文链接:http://blog.51cto.com/java999/168085,如需转载请自行联系原作者

目录
相关文章
|
26天前
递归
【10月更文挑战第23天】递归。
14 4
|
6月前
|
算法 C语言
c递归
c递归
43 2
|
1月前
|
机器学习/深度学习 C语言
函数递归(Recursion)一篇便懂
本文详细介绍了递归的概念、C语言中的递归函数实现、递归的两个重要条件,通过实例演示了阶乘和汉诺塔问题的递归解决方案,并对比了递归与迭代的区别。作者强调了递归在特定场景下的优势和潜在问题,提示读者在实际编程中灵活选择方法。
24 0
|
6月前
|
算法 C#
C#递归详解
C#递归详解
52 0
|
Python
Indirect recursion
Indirect recursion 是指在函数调用中,函数体内部调用另一个函数,而这个被调用的函数又调用了该函数本身,形成了递归调用。这种递归调用是通过间接的方式实现的,因此被称为间接递归。 使用间接递归可以使代码更加简洁和易于理解。例如,考虑一个计算阶乘的函数,使用直接递归的实现方式会比较复杂,而使用间接递归则可以很简单地实现。
60 5
|
存储
【递归知识+练习】
【递归知识+练习】
74 0
|
JavaScript 前端开发
什么是递归?
什么是递归?
108 0
|
机器学习/深度学习 Windows
深入理解递归-recursion-mycodeschool
Factorial - a simple recursion Fibonacci Sequence -recursion and "gotcha" Complexity analysis of recursive programs Fibonacci Sequence - Time Complexity analysis Recursion with memorization Fibonacci Sequence -Space Complexity analysis Calculate x - using recursion Modular Exponentiation - using re
106 0
|
机器学习/深度学习
什么是递归
通过阶乘函数f(n)=n! f(0)=1 f(n)=f(n-1)*n(n>=1)简要理解递归
105 0
|
算法 索引
第 6 章 递归
简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。
68 0