c語言函式 遞迴

2021-09-05 08:26:51 字數 2304 閱讀 4261

函式的遞迴可以簡單的理解為迴圈,但他和迴圈是不一樣的。函式的一次遞迴呼叫相當於一次迴圈。

一般情況下,迴圈要比遞迴計算的時間要快一些

函式的遞迴是在函式內呼叫自己,滿足限制條件後,就會返回到上乙個函式,知道返回到最初的函式

遞迴的呼叫條件:

1 限制條件 滿足這個條件,遞迴將不再進行。

2 每次的遞迴呼叫之後會越來越接近限制條件。

1.遞迴和非遞迴分別實現求第n個斐波那契數。

1) 採用非遞迴的方法 —迴圈

#define  _crt_secure_no_warnings 1

#include #include int main()

n = i + j;

i = j;

j = n;

count++; }

system("pause");

return 0;

}

2)運用函式的遞迴呼叫來求斐波那契數列

#define  _crt_secure_no_warnings 1

#include #include int fbnq(int n)

else

}int main()

2編寫乙個函式實現n^k,使用遞迴實現

#define  _crt_secure_no_warnings 1

#include #include //jie函式 遞迴來算n的階乘

int jie(int n)

else }

int main()

3寫乙個遞迴函式digitsum(n),輸入乙個非負整數,返回組成它的數字之和,

例如,呼叫digitsum(1729),則應該返回1+7+2+9,它的和是19

#define  _crt_secure_no_warnings 1

#include #include int digitsum(int n)

return n % 10 + digitsum(n / 10 );

}int main()

} int ret = digitsum(num);

printf("數字各位之和為:%d\n", ret);

system("pause");

return 0;

}

4編寫乙個函式 reverse_string(char * string)(遞迴實現)

實現:將引數字串中的字元反向排列。

要求:不能使用c函式庫中的字串操作函式。

#define  _crt_secure_no_warnings 1

#include #include void reverse_string(char* arr)

}int main()

; reverse_string(arr);

system("pause");

return 0;

}

5.遞迴和非遞迴分別實現strlen

1) 非遞迴

#define  _crt_secure_no_warnings 1

#include #include int strlen1(char * arr)

return count;

}int main()

; int ret = strlen1(arr);

printf("%d\n", ret);

system("pause");

return 0;

}

2) 遞迴

#define  _crt_secure_no_warnings 1

#include #include int strlen1(char * arr)

else return 1 + strlen1(arr + 1);

}int main()

; int ret = strlen1(arr);

printf("%d\n", ret);

system("pause");

return 0;

}

7.遞迴方式實現列印乙個整數的每一位

#define  _crt_secure_no_warnings 1

#include #include void printf(int n)

printf("%d ",n%10);

}int main()

C語言 之遞迴函式

今天來總結一下關於遞迴函式的使用方面的問題。遞迴函式就是在函式使用的時候自己呼叫自己,層層呼叫,來實現你想要的功能。有兩個最常用的例子,我們來寫一下。1 計算階乘 include int factorial int n 函式宣告 階乘 int main void int a 5 printf d的階...

C語言函式的遞迴

1.遞迴條件 採用遞迴方法來解決問題,必須符合以下三個條件 1 可以把要解決的問題轉化為乙個新問題,而這個新的問題的解決方法仍與原來的解決方法相同,只是所處理的物件有規律地遞增或遞減。說明 解決問題的方法相同,呼叫函式的引數每次不同 有規律的遞增或遞減 如果沒有規律也就不能適用遞迴呼叫。2 可以應用...

c語言遞迴函式實現

遞迴和非遞迴分別實現第n個斐波那契數 遞迴 include includeint fib int n return fib n 1 fib n 2 int main 非遞迴 include includeint fib2 int n return third int main 編寫乙個函式實現n k...