--- ###### tags: `課程` --- Function Recursion === ---- ## 軟研數學小教室! $f(x,y) = 3 x^x - \frac{x}{\frac{1}{y}} + y + 2$ g(t) = t if (t < 2) 3 if (t = 2) -t if (t > 2) ---- -> 想像成一種f(x) 給定一些數字 就會返回一些數值 ---- 函式就是一種可以運算的程式碼區塊,接收指令後,可以在裡面做出你要得到的結果 分為2種類型: 1. 內建函式 2. 自訂函式 --- ## 內建函式 ---- ```cpp= #include<函式庫名稱> 例如: #include<math.h> 就可以使用 sqrt ( x ) x的開根號值 pow (x, y) x 的 y 次方 ``` ---- ## 常見內建函式 ---- ### 有回傳值函數 ```cpp= int main() { int a, b; //有回傳值得函數 cout << sqrt(a) << endl; cout << sqrt(a) << endl; cout << pow(a, b) << endl; cout << __gcd(a, b) << endl; cout << __lg(a, b) << endl; cout << max(a, b) << endl; ``` ---- ### 無回傳值 ```cpp= //無回傳值的函數 memset(arr, 0, sizeof( arr )); sort(arr, arr + n); cout << upper_bound(arr, arr, x) - arr << endl; } ``` --- ## 自訂函式 - 宣告位置:使用他之前 - 宣告方式 ```cpp= 回傳型態 函數名稱(引數型態1 引數名稱1, ..., 引數型態n 引數名稱n){ 要做的事情 return xxx;(如果有回傳值) } int fuc(int a, int b){ int k = a * b; return k; } void hi(){ cout << "hi" << endl; return; } ``` ---- 1. 宣告函式在using namespace std;下 int main()前 2. 宣告函式型態 3. ## 主函式 main() ```cpp= #include<iostream> using namespace std; int main(){ return 0; } ``` --- # 遞迴 ---- ## 費氏數列 $a_n = a_{n-1} + a_{n-2}$ ---- ## 猜猜我是誰 ```cpp= #include <iostream> int cnt, muti = 1; int32_t main() { return (cnt < 5 ? (muti *= ++cnt), main() : (std::cout << muti << '\n', 0)); } ``` ----
{"metaMigratedAt":"2023-06-15T15:33:47.497Z","metaMigratedFrom":"Content","title":"Function Recursion","breaks":true,"contributors":"[{\"id\":\"82f46fc6-f9dd-4e98-8fe8-19fda0dc8ba3\",\"add\":0,\"del\":1},{\"id\":\"d00f6533-e69a-43c0-9ace-aa4bdb9a7ead\",\"add\":1467,\"del\":0}]"}
    259 views
   Owned this note