用递归算法实现斐波那契数列和阶乘加和
1.斐波那契
代码如下:
public static void main(String[] args) {
for(int i =1;i<=10;i++) {
System.out.print(getNumber(i)+"\t");
}
}
public static int getNumber(int number) {
if(number==1||number==2) {
return 1;
}else {
return getNumber(number-1)+getNumber(number-2);
}
}
结果为:
当 i=3时, getNumber(number-1)+getNumber(number-2);–>
getNumber(2)==1 ; getNumber(1)==1
所以返回值为2;
2.1!+2!+…+10!
代码如下:
int sum=0;
int a=0;
for(int i =1;i<=10;i++) {
a=getNumber(i);
sum = sum+a;
}
System.out.println(sum);
}
public static int getNumber(int number) {
int a=1;
int sum = 0;
for(int i=number;i>=1;i--) {
a=a*i;
sum = sum+a;
}
return sum ;
}
结果为 4037913
注意:因为递归会加大资源消耗,如果递归的层次比较深,还造成栈溢出。
—如果不使用递归无法解决问题时,就使用。