标签:
把以前大神们讲过的一些小知识点整理了一下。
1.二分幂的原理:
代码:
1 int power(int a,int b) 2 { 3 int ans=1; 4 while(b!=0) 5 { 6 if(b%2==1) 7 ans*=a; 8 b/=2; 9 a*=a; 10 } 11 return ans; 12 }
1 double power(double b,unsigned int e) 2 { 3 if(e==0) 4 return 1; 5 if(e==1) 6 return b; 7 double result=power(b,e/2); 8 result*=result; 9 if(e%2)//a&0x1=a%2; 10 result*=b; 11 return result; 12 }
由二分幂来求出a的b次方的最后一位数:HDU1079
1 #include<iostream> 2 #include<cstdio> 3 #include<algorithm> 4 #include<cstring> 5 #include<queue> 6 #include<vector> 7 using namespace std; 8 long long power(long long a,long long b) 9 { 10 long long ans=1; 11 long long temp=a; 12 while(b!=0) 13 { 14 if(b%2==1) 15 ans=(ans*temp)%10; 16 b/=2; 17 temp=(temp%10)*(temp%10)%10;; 18 } 19 return ans; 20 } 21 int main() 22 { 23 long long a,b; 24 long long s; 25 while(cin>>a>>b) 26 { 27 s=power(a,b); 28 cout<<s<<endl; 29 } 30 return 0; 31 }
标签:
原文地址:http://www.cnblogs.com/yinqx/p/5004996.html