一、递归实现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