第十六天(1)二分求幂

人见人爱 A ^ B
内存限制:128 兆
特殊判题:否
时间限制:1 秒

题目描述: 求 A B A^B 的最后三位数表示的整数。

输入: 输入数据包含多个测试实例,每个实例占一行,由两个正整数 A 和 B 组成(1<=A,B<=10000 ) ,如果 A=0, B=0,则表示输入数据的结束,不做处理。
:

输出:对于每个测试实例,请输出 A^B 的最后三位表示的整数,每个输出占一行。

样例输入:
2 3
12 6
6789 10000
0 0
样例输出:
8
984
1

//
//  main.cpp
//  DichotomyPower
//
//  Created by Apple on 2019/8/20.
//  Copyright © 2019 Apple_Lance. All rights reserved.
//

#include <iostream>
#include <stdio.h>
using namespace std;
int main(int argc, const char * argv[]) {
    // insert code here...
    int a, b;
    while(scanf("%d%d", &a, &b) != EOF)
    {
        if(a == 0 && b == 0)
            break;
        int ans = 1;
        while(b != 0){
            if(b % 2 == 1){
                ans *= a;
                ans %= 1000;
            }
            b /= 2;
            a *= a;
            a %= 1000;
        }
        printf("%d\n", ans);
    }
    return 0;
}
发布了182 篇原创文章 · 获赞 101 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/lancecrazy/article/details/99820063