首页 > 编程语言 >递归算法

递归算法

时间:2023-01-03 10:37:31浏览次数:36  
标签:return 递归 factorial int 算法 num static public


一、递归实现N!.

代码实现:

package cn.test;

/**
* @author 徐庶
* @date 2016年9月6日
*/
public class Recursive {

//递归
private static long factorial(int n) {
if(n == 1){
return 1;
}

return n * factorial(n-1);
}
public static void main(String[] args) {

long factorial = factorial(10);//传入的参数是10,得到的结果就是10的阶乘
System.err.println(factorial);
}
}

二、递归实现1到N的和

public class Recursive {
//递归
private static long factorial(int n) {
long sum;
if (n == 1) /*假设条件*/
return 1;
else
sum = n+ factorial(n - 1);
return sum; /*返回结果*/
}
public static void main(String[] args) {
long factorial = factorial(10);
System.err.println(factorial);
}
}

三、计算 1、1、2、3、5、8.......N的和

public class Recursion {
public static void main(String[] args) {
int num = num(10);
System.out.println(num);
int sumNum = sumNum(10);
System.err.println(sumNum);
}
//计算i位的数
public static int num(int i)
{
if (i == 1)
return 1;
else if (i == 2)
return 1;
else
return num(i - 1) + num(i - 2);
}
//计算1、1、2、3...的和
public static int sumNum(int i){
int sum=0;
if(i==1){
return 1;
}
if(i==2){
return 2;
}
else
sum=sumNum(i-1)+num(i);
return sum;
}
}

 

标签:return,递归,factorial,int,算法,num,static,public
From: https://blog.51cto.com/u_15928064/5984649

相关文章