日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

第二次讲课内容(函数和快速幂)

發布時間:2024/4/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第二次讲课内容(函数和快速幂) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

函數

在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)
int p = 10000007; int a = 2, b = 10; int ans = 1; for (int i = 1; i <= b; ++i) {ans = (ans * a) % p; } cout << ans << endl;
  • 當指數很大的時候上面的方法就有些慢,這里我們就學習一下快速冪的方法

例如我們求
211=2(1011)2=28×1×24×0×22×1×21×1\begin{aligned} 2^{11} &amp;=2^{(1011)_{2}} \\&amp;=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

typedef long long LL; LL quick_pow(LL a, LL b, LL p) {LL t = a;LL ans = 1;while (b) {if (b & 1) // 判斷當前二進制是否為1ans = (ans * t) % p; // 如果為1更新anst = (t * t) % p; // 更新下一位的值,并把指數的二進制后移一位b >>= 1;}return ans; } 與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的第二次讲课内容(函数和快速幂)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。