遞迴簡單、粗暴
阿新 • • 發佈:2018-12-11
遞迴
a、要給一個出口負責結束當前的遞迴
b、迴圈次數不能太多,否則佔用的記憶體過多,宕機
條件
死迴圈:1.自己呼叫自己(方法) 2.方法之間相互呼叫
class recursion{
static int sum = 0;
static int i=0;
public static void run(){
sum+=i;
System.out.println(sum);
if (i++ == 100) { //限制
return;
}
run(); //自己調自己
}
}
例項
public class Demo11 {
public static void main (String[] args) {
/*
*遞迴例項:求1-10之間的所有偶數的積與所有奇數的積的差
*/
int value = getValue();
System.out.println(value);
}
static int jishuji = 1,oushuji = 1,i=1;
public static int getValue(){
//求偶數的積
if (i%2==0) {
oushuji*=i;
}
//求奇數的積
if (i%2!=0) {
jishuji*=i;
}
//得到差值
if (i++ == 10) {
return oushuji-jishuji;
}
//自己呼叫自己
int a = getValue();
return a;
}
}
遞迴演算法
public static int add(int num) {
if (num == 1) {
return 1;
}
return num+add(num-1); //返回mum+(num-)的合
}