首页 > 其他 > 详细

EOJ3134. 短信激活码(大数幂取模)

时间:2018-11-17 17:34:42      阅读:175      评论:0      收藏:0      [点我收藏+]

题面

输入只有5位,所以转化为long long类型用快速幂取模

前面补0的写法printf("%05lld\n",ans);如果ans不足5位会在前面补0

技术分享图片
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 long long mod_exp(long long a, long long b, long long c)        //快速幂取余a^b%c
 4 {
 5     long long res, t;
 6     res = 1 % c; 
 7     t = a % c;
 8     while (b)
 9     {
10         if (b & 1)
11         {
12             res = res * t % c;
13         }
14         t = t * t % c;
15         b >>= 1;
16     }
17     return res;
18 }
19 int main()
20 {
21     int t;
22     while(~scanf("%d",&t))
23     {
24         int cases=-1;
25         while(t--)
26         {
27             cases++;
28             char s[10],s2[10];
29             scanf("%s",s);
30             s2[0]=s[0];
31             s2[1]=s[2];
32             s2[2]=s[4];
33             s2[3]=s[3];
34             s2[4]=s[1];
35             long long temp=(s2[0]-1+1)*10000+(s2[1]-1+1)*1000+(s2[2]-1+1)*100+(s2[3]-1+1)*10+(s2[4]-1+1)*1;
36             printf("case #%d:\n%05lld\n",cases,mod_exp(temp,5,100000));
37         }
38     }
39     return 0;
40 }
View Code

 

EOJ3134. 短信激活码(大数幂取模)

原文:https://www.cnblogs.com/fqfzs/p/9974722.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!