ksm快速冪

/*求a^b  如2的9比方 pow缺點有精度截斷問題
2 9
ans=2
a=4 b=4
a=16 b=2
a=16*16  b=1
*/
#include<iostream>
#include<cstdio>
using namespace std;
long long ksm(long long a,long long b){
    long long ans=1;
    while(b){
        if(b&1){//奇數
            ans*=a;
        }
        a*=a;
        b>>=1;
    }
    return ans;
}
int main()
{
	printf("%lld",ksm(2,9));
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章