遞歸返回特定條件下的所求值

今天寫一個簡單的遞歸寫懵逼了,用for替代遞歸還能想到,但是就用遞歸來返回特定值就不知道怎麼寫了。
然後看了一下以前的筆記,決定再做一下筆記。


題目,比如:返回最後一次遞歸的值

1、首先將特定的條件單獨拿出來判斷
2、創建返回值的“”窗口“”,將值在出棧中逐步返回

int iterate(int x, int n);

int main(){
    int x,times;
    scanf("%d %d",&x,&times);
    printf( "%d ",  iterate(x, times));
}

int iterate(int x, int n){
    //首先判斷條件
    if( n == 0) {   //最後一次遞歸
        return x;
    }
    else{           //不是最後一次遞歸,繼續遞歸
        x = x * 2;
        --n;
        int result = iterate(x,n);  //傳遞的“窗口”
        return result;
    }
}
發佈了76 篇原創文章 · 獲贊 83 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章