1. 程式人生 > >HDU 2035 人見人愛A^B 快速冪取模

HDU 2035 人見人愛A^B 快速冪取模

分析:
標配快速冪。注意取模別溢位即可。

程式碼如下:

#include <stdio.h>
// 快速冪非遞迴實現(迴圈+位運算)
int power2(int a, int n){
    int ans=1;
    while(n){
        if(n&1) // 判斷0 1的特殊寫法
            ans = (ans*a) % 1000;
        a = (a*a) % 1000;
        n >>= 1;        // 右移一位
    }
    return ans;
}
int main() {
    int n,m;
    while
(scanf("%d%d",&n,&m), (n || m)) { long long ans = power2(n,m); printf("%d\n",ans%1000); } return 0; }