题目描述
求A^B的最后三位数表示的整数(1<=A,B<=1000)
输入
第一行输入一个整数n,表示有n个测试实例,接着有n行,每行一个实例,给出两个正整数A,B
输出
针对每个测试实例,输出A^B的最后三位(没有前导0) ,单独占一行。
样例输入
2 2 3 12 6
样例输出
8 984
tips:1 刚开始直接使用pow()函数,由于没有考虑到溢出,导致errot
2 求某一个数的后三位,可以直接对该数对1000取余 类似求某一个数的个位,对该数进行10取余
3 大数取余运算,可以在每一次取余一次,然后用取余结果接着相乘取余
8^3%7 8%7=1 1*8%7=1 1*8%7=1
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int main(){
int num,a,b,ret=1;
scanf("%d",&num);
for (int i = 0; i < num; i++)
{
ret = 1;
scanf("%d%d",&a,&b);
for (int j = 0; j < b; j++)
{
ret *= a;
ret %= 1000;
}
printf("%d\n",ret);
}
}
马赛克| 发布了117 篇原创文章 · 获赞 58 · 访问量 4万+ 私信 关注