/*
* 递归方法的使用
* 1、一个方法调用她本身
* 2、递归方法包含一种隐式的循环,一定要向一直方向递归
*/
public class recurion {
//计算1-100之间所有自然数的和
//方式一:for循环
public void re() {
int sum = 0;
for(int i=1;i<101;i++) {
sum+=i;
}
System.out.println("前100的和为:"+sum);
}
//方式二:递归
public int getsum(int n) {
if(n==1){
return 1;
}else {
return n+getsum(n-1);//getsum当中调用getsum
}
}
//计算1-n之间所有自然数的乘积
public int getchengji(int n) {
if(n==1) {
return 1;
}else {
return n*getchengji(n-1);//getsum当中调用getsum
}
}
//已知f(0)=1,f(1)=4,求f(n+2)=2*f(n+1)-f(n)
public int getx(int n) {
if(n==0) {
return 1;
}else if(n==1) {
return 4;
}else {
return 2*getx(n-1)-getx(n-2);
}
}
}
类的实例化:
public class recuriontest {
public static void main(String[] args) {
recurion ret = new recurion();
ret.re();
int sum1=ret.getsum(100);
int cj = ret.getchengji(13);
int f=ret.getx(12);
System.out.println("前100项和为:"+sum1);
System.out.println("前13项乘积为:"+cj);
System.out.println("f(n+2)=2*f(n+1)-f(n)为:"+f);
}
}