快速幂的思路
python

  1. from functools import reduce
  2. print(*map(lambda _:reduce(lambda x,y:x**10*2011**int(y)%10000,input(),1),range(int(input()))),sep='\n')

java

  1. import java.util.Scanner;
  2. import java.math.BigInteger;
  3. import java.util.stream.IntStream;
  4. public class Main {
  5. public static void main(String[] args) {
  6. final Scanner in = new Scanner(System.in);
  7. IntStream.range(0,in.nextInt()).mapToObj(i->BigInteger.valueOf(2011).modPow(in.nextBigInteger(),BigInteger.valueOf(10000))).forEach(System.out::println);
  8. in.close();
  9. }
  10. }

C(快速幂)

  1. #include<stdio.h>
  2. #define mod 10000
  3. int f(int x,int y,int z){
  4. return y?f(x*x%mod,y>>1,y&1?z*x%mod:z):z;
  5. }
  6. int main(){
  7. int n,r,c;
  8. for(scanf("%d\n",&n);n--;printf("%d\n",r))
  9. for(r=1;(c=getchar())!='\n';r=f(r,'\n',1)*f(2011,c^'0',1)%mod);
  10. }

C(打表)

  1. #include<stdio.h>
  2. #define mod 10000
  3. int main(){
  4. int n,r,c,x,a[]={1,2011,4121,7331,2641,1051,3561,1171,4881,5691};
  5. for(scanf("%d\n",&n);n--;printf("%d\n",r))
  6. for(r=1;(c=getchar())!='\n';r=x*a[c&15]%mod)
  7. x=r*r%mod,x=x*x%mod,x=x*r%mod,x=x*x%mod;
  8. }
点赞(0)
 

3.2 分

2 人评分

 

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 0 条评论

暂无评论