【ZZULIOJ】1090: 整数幂(多实例测试)

这篇博客介绍了一个C++程序,用于计算两个正整数相乘的最后三位数。程序中定义了普通幂计算函数,通过循环和取余操作实现了对大整数快速幂的优化计算,适用于多实例测试。同时,文章提到了快速幂的知识,对于理解大数运算和算法优化有一定帮助。
摘要由CSDN通过智能技术生成

ZZULIOJ题解

1090: 整数幂(多实例测试)

题目描述
求A^B的最后三位数表示的整数(1<=A,B<=1000)

输入
第一行输入一个整数n,表示有n个测试实例,接着有n行,每行一个实例,给出两个正整数A,B

输出
针对每个测试实例,输出A^B的最后三位(没有前导0) ,单独占一行。

样例输入

2
2 3
12 6

样例输出

8
984

本题考察多实例测试,利用函数运算,再考虑对数字的优化,感兴趣可以了解相关快速幂的知识。

代码

#include<bits/stdc++.h> //C++万能头文件 
using namespace std;
int normalPower(int base, int power)//定义普通幂计算函数 
{   int result = 1;//定义result并赋初值为1,来实现记录结果 
    for(int i=1;i<=power;i++) //利用循环计算a^b的值 
	{   result = result*base;   //继续×底数 
        result = result%1000;   }//对计算结果取余只要求后三位 
    return result%1000;//计算结果返回给result 
}
 
int main() {
    int base, power,n;//定义底数base和指数power,以及次数n 
    scanf("%d",&n);//键盘读入n的值 
    while (n--)//while循环来实现计算结果和输出 
	{  scanf("%d %d",&base,&power);//键盘输入base和power的值 
       printf("%d\n",normalPower(base, power)); //输出计算结果 
    }
    return 0;//程序正常退出 
 
}
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

 江海寄余生 

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值