快速冪,以及一道可以使用的例題

2021-10-24 16:48:30 字數 981 閱讀 9571

ll quickm

(ll a,ll b)

rns>>=1;

//移位運算,經二進位制表示的值左移一位,相當於rns/2,

//移位運算比直接除2要快

a=a*a;

}return ans;

}

如果看不懂移位運算和與運算子的可以先移步至文章末尾,先去了解一下,然後再回來

這有一道例題可以用到快速冪演算法,當然也可以不用,也可以自己本地打表,然後直接定義乙個陣列,不過我這裡就介紹一下用快速冪的解決方法吧

math problem

鏈結附上 math problem

#include

using

namespace std;

typedef

unsigned

long

long ll;

const ll mod=

1000

;const ll maxn=

1e5+10;

ll quickm

(ll a,ll b)

rns>>=1;

a=a*a;

}return ans;

}int

main()

cout<}}

快速冪預備知識

首先是6%2=0;二進位制最低位就是0;6就變成3

然後是3%2=1;二進位製上一位就是1;3就變成1

然後是1%2=1;二進位制再一位就是1;此時1就變成了0;

所以6的二進位制表示就是110;

2.與運算子&

這是乙個二元運算子,從最高位開始按位比較,如果相同的二進位制位的數字相同就返回 1 ,否則就返回 0 。

例如 :3的二進位制 011 ; 5 的二進位制 101

然後3 & 5 就是 011 & 101 = 001

再比如 x & 1 == 1則表示x為奇數,x & 1 == 0則為偶數。

一道基礎例題的思考

上面是一段我自己編寫的 具體問題是寫出console.log的值,其中我的下意識的判斷 console.log a.constructor b true理由是b.prototype.contructor重寫了a.prototype物件contructor屬性,執行以上 執行結果證明我的下意思判斷是錯...

JS的一道this例題解析

在學習js裡this的指向時,發現了一道有點 的面試題,看懂了對學習this應該是挺有幫助的 例題如下 function parent this.show function function child child.prototype new parent var parent new parent...

linux檔案和目錄管理的一道例題

假設系統中有兩個賬號,分別是 alex 和 arod 這兩個人除了自己群組之外還共同支援乙個名為 project 的群組。假設這兩個使用者需要共同擁有 srv ahome 目錄的開發權,而該目錄禁止其他人進入查閱。請問該目錄的許可權設定應為何?請先以傳統許可權說明,再以 sgid 的功能解析。目標 ...