函數遞歸:
一個過程或函數在其定義或說明中有直接或間接調用自身的一種方法。
遞歸的主要思考方式:
把大事化小。數組
用遞歸的方法是實現:接受一個整型值(無符號),按照順序打印它的每一位。 例如: 輸入:1234,輸出 1 2 3 4ide
void print(int n) { if (n > 9) { print(n / 10); } printf("%d ", n%10); } int main() { unsigned int num = 0; scanf("%d", &num); print(num); return 0; }
編寫函數不容許建立臨時變量,求字符串的長度。函數
//遞歸的方法 int my_strlen(char* str) { if (*str != '\0') return 1 + my_strlen(str + 1); else return 0; } //把大事化小 //my_strlen("bit"); //1+my_strlen("it"); //1+1+my_strlen("t"); //1+1+1+my_strlen("") //1+1+1+0 //3 int main() { char arr[] = "bit"; //模擬實現一個strlen函數 int len = my_strlen(arr);//arr是數組,數組傳參,傳過去的不是整個數組,而是第一個元素的地址 printf("%d\n", len); return 0; }
遞歸存在限制條件:
存在限制條件,當知足這個限制條件的時候,遞歸便再也不繼續。
每次遞歸調用以後愈來愈接近這個限制條件。code
2021.1.24遞歸