Description
求A^B的最后三位数表示的整数(1<=A,B<=1000)
Input
n个测试实例,每个实例给出两个正整数A,B
Output
输出A^B的最后三位(没有前导0)
Sample Input
22 312 6
Sample Output
8984
题意概括:输出一个数的幂次方的后三位
解题思路:
1: 因为是幂次方,所以要循环幂次
错误原因:
1:前导0的各种不同的情况考虑不够充分。应该分别考虑首位为零且第二位也为零,首位为零但第二位不为零,首位不为零三种情况。
2:没有考虑溢出,因为给的数据是1<=A,B<=1000,要考虑到溢出的情况;所以每次要取余数,只用留下后三位参与接下来的累乘即可。
经验总结:
1: 要取一个数的后几位,就要让一个数取10的几次方的余数。
我的AC代码:
#include<stdio.h>
#include<math.h>
int main(void)
{
int n;
int a, b, i,