第二次讲课内容(函数和快速幂)
函數
在c語言中 main() 就是一個函數,它是程序的主函數。
函數定義的一般格式:
返回類型 函數名(參數列表){函數體 }返回類型
- 一個函數可以返回一個值,返回類型就是對應的值的類型。常見的有int、long long、bool、double、float,如果函數沒有返回值就用void
函數名
- 自定義名稱
- 字母、數字、下劃線混合使用,但是只能以字母或下劃線開始
參數列表
- 傳遞參數時要和參數列表中的順序、數量、類型相對應
- 參數是可選的,函數可以不包含參數
函數體
- 自定義的執行語句
實例
自定義Max(),返回num1,num2中的最大值
int Max(int num1, int num2) {if (num1 > num2)return num1;elsereturn num2; }函數聲明
-
函數聲明告訴編譯器函數的名稱、如何調用函數
-
一般格式為返回類型 函數名(參數列表);
-
對于上面定義的 Max() 函數,聲明函數為int Max(int num1, int num2);
-
在函數聲明中參數的名稱不重要,參數的類型是必要的。因此也可以這樣聲明int Max(int, int);
函數的調用
函數定義之后,通過調用完成指定的操作, 當程序調用函數時,程序就會執行函數體中的語句直到執行完畢return返回,這樣就完成了一次調用
#include <iostream> using namespace std; int Max(int num1, int num2) {if (num1 > num2)return num1;elsereturn num2; }int main() {int a = 10;int b = 20;// 調用函數并輸出結果cout << Max(a, b) << endl;return 0; }小練習
- 判斷閏年
- 求圓的面積
快速冪
問題
求 ab%pa^{b} \%pab%p
思路
- 最容易想到的是循環求值,循環操作b次每次乘以a,時間復雜度O(n)
- 當指數很大的時候上面的方法就有些慢,這里我們就學習一下快速冪的方法
例如我們求
211=2(1011)2=28×1×24×0×22×1×21×1\begin{aligned} 2^{11} &=2^{(1011)_{2}} \\&=2^{8}\times1\times2^{4}\times0\times2^{2}\times1\times2^{1}\times1 \end{aligned} 211?=2(1011)2?=28×1×24×0×22×1×21×1?
通過觀察上式,我們可以將指數轉化為2進制,變量Ans記錄結果,變量T記錄當前二進制對應的值,不難發現二進值每高一位,對應的T=T2\ T=T^{2}?T=T2,而二進制的狀態0和1表示是否要乘上T
總結
以上是生活随笔為你收集整理的第二次讲课内容(函数和快速幂)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ZOJ-3494 BCD Code (a
- 下一篇: 牛客小白9 换个角度思考(离线+树状数组