递归(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,如需转载请自行联系原作者

目录
相关文章
|
12月前
|
Python
Indirect recursion
Indirect recursion 是指在函数调用中,函数体内部调用另一个函数,而这个被调用的函数又调用了该函数本身,形成了递归调用。这种递归调用是通过间接的方式实现的,因此被称为间接递归。 使用间接递归可以使代码更加简洁和易于理解。例如,考虑一个计算阶乘的函数,使用直接递归的实现方式会比较复杂,而使用间接递归则可以很简单地实现。
49 5
|
11月前
|
JavaScript 前端开发
什么是递归?
什么是递归?
73 0
|
Java 数据安全/隐私保护 决策智能
字符串全排列(递归)
字符串全排列,递归的应用
137 0
|
机器学习/深度学习 BI
递归问题
递归问题
|
机器学习/深度学习 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
100 0
|
机器学习/深度学习
什么是递归
通过阶乘函数f(n)=n! f(0)=1 f(n)=f(n-1)*n(n>=1)简要理解递归
95 0
|
算法 索引
第 6 章 递归
简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量,递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。
65 0
|
存储 Serverless 开发者
递归的理解与实现
递归的理解与实现
递归的理解与实现