UESTC - 167 a ^ b的后四位

xiaoxiao2021-02-28  101

点击打开链接

求a的b次方后四位。

Input

输入的第一行是T(不超过1000)。T表示测试部分的个数,每一部分都要求单独计算并按照要求输出结果。

接下来是每个测试部分。第一行给出a, b,0 < a,b< 1000000000。

Output

对于每个测试部分,请输出每个问题的正确答案的最后四位,如果不足四位请前面补0。

Sample Input 2 2 1 3 10 Sample Output 0002 9049 Hint

Ps: 快速幂的经典实例。

    注意到a的n次方的后四位只与a的n-1次方的后四位有关,故每次运算只取后四位即可。

  

 以下是代码:

#include<stdio.h> int main() { int a,b,t; long long int ans,x; scanf("%d",&t); while(t--) { scanf("%d%d",&a,&b); ans=1; a=a000; while(b) { if(b%2==1) ans=(ans*a)000; a=(a*a)000; b/=2; } printf("lld\n",ans); } return 0; }

转载请注明原文地址: https://www.6miu.com/read-27909.html

最新回复(0)