【2021寒假集训营第一场】H-幂塔个位数的计算

幂塔个位数的计算

https://ac.nowcoder.com/acm/contest/9981/H

图片说明

这个题还可以欧拉降幂。
好些找规律的同学在最后一位是7328四种情况的时候,没有考虑清楚(靠猜) ,其实我最开始也没仔细想,后来写证明的时候发现这个事情不对23333,所以大家找规律一定要谨慎!

代码:

#include <bits/stdc++.h>
using namespace std;
int b, a, n;
char s1[100010], s2[100010];
int main()
{
    scanf("%s %s", &s1, &s2);

    if (strlen(s2) == 1 && s2[0]=='1')
    {
        cout << s1[strlen(s1)-1];
        return 0;
    }
    b =  ((s1[strlen(s1)-2] -'0') *10+s1[strlen(s1)-1] -'0') %4; 
    a = s1[strlen(s1)-1] -'0';
    if (a == 0 || a == 1 || a == 5|| a == 6 ||a == 9) cout << a;
    if (a == 4) cout << 6;
    if(a == 2 || a== 8)
        if  (strlen(s2) == 1 && s2[0]=='2' && b != 0) cout <<4;
        else cout << 6;
    if(a == 3)
        if (b == 1) cout << 3;
        else cout <<7;
    if(a == 7)
       if (b == 3) cout << 3;
        else cout <<7;
    return 0;
}
全部评论

相关推荐

牛客717484937号:双飞硕没实习挺要命的
点赞 评论 收藏
分享
5 收藏 评论
分享
牛客网
牛客企业服务