数学问题-二分求幂例题

Posted yun-an

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数学问题-二分求幂例题相关的知识,希望对你有一定的参考价值。

例 4.10 人见人爱 A ^ B 

题目描述

求 A^B 的最后三位数表示的整数。说明:A^B 的含义是“A 的 B 次方” 

输入

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

输出

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

样例输入

2 3 
12 6 
6789 10000 
0 0

样例输出

8 
984 
1 

解题代码

#include<cstdio>

int main()

    int a, b;
    while (scanf("%d%d", &a, &b) != EOF)
    
        if (a == 0 && b == 0)break;
        int ans = 1;//保存结果的最终变量,初始值为1
        while (b != 0)//若b为0,即对b转换二进制过程结束
        
            if (b % 2 == 1)//当前二进制位为1,则需要累乘a的2^k次至变量ans
            
                ans *= a;
                ans %= 1000;//求后三位数
            
            b /= 2;//b除以2
            a *= a;//求下一位二进制位的权重,即从a的1次开始,依次求a的2次、4次......
            a %= 1000;//求a的后三位
        //一边计算b的二进制值,一边计算a的2^k次,并将需要的部分累乘到ans上
        printf("%d\n", ans);
    
    return 0;

 

以上是关于数学问题-二分求幂例题的主要内容,如果未能解决你的问题,请参考以下文章

二分图判定

数学建模|Python规划问题之非线性规划

六十八快速幂算法牛顿迭代法累加数组+二分查找的变形

一道排列组合数学问题

数学与猜想的图书目录

组合数学经典方程的对偶方程一个不等式问题(例题:acwing1312 序列统计)