码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-11-17 17:54:44      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:alt   one   temp   ++   https   view   return   lld   print   

题面

输入只有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. 短信激活码(大数幂取模)

标签:alt   one   temp   ++   https   view   return   lld   print   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!