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