T^T(1)问题(2018.11.25)

这真的是我被颜表情皮的最惨的一次。。。没有之一。。。
描述:
T^T这个很像一个流泪的表情是不是!其实,它是T的T次方啦~。
当T比较大的时候T^T会非常大,现在只要你求这个数的个位就可以啦。
输入
输入包括多组测试数据,每个测试数据只有一个数字T(0<T<2^31)
输出
请输出T^T的个位数。
样例输入:

1
2
3
105

样例输出:

1
4
7
5

分析:
a^b%10是其个位数,当a==b的时候就是这道题的情况
这道题我是找规律做的,嗯就是这样。(因为数据估计会很大,所以还是动动脑子吧)
规律如下:当n=0,1,5,6,9时,输出本身
当n=4时,输出6
当n=2时,个位数按照2,4,8,6的规律来
当n=3时,个位数按照3,9,7,1的规律来
当n=7时,个位数按照7,9,3,1的规律来
当n=8时,个位数按照8,4,2,6的规律来(计算器是个好东西TvT,或者直接写个程序吧)
其实4和9的时候应该是有两种情况,分别是4,6和1,9(分为奇数和偶数的情况)。但是由于a=b,所以只有6和9.
代码如下
python

try:
    while 1:
        n=input()
        m=n[len(n)-1]
        k=int(n)
        if m=='0':
            print('0')
        if m=='1':
            print('1')
        if m=='5':
            print('5')
        if m=='6':
            print('6')
        if m=='9':
            print('9')
        if m=='2':
            l1=[2,4,8,6]
            print(l1[(k-1)%4])
        if m=='3':
            l2=[3,9,7,1]
            print(l2[(k-1)%4])
        if m=='7':
            l3=[7,9,3,1]
            print(l3[(k-1)%4])
        if m=='8':
            l4=[8,4,2,6]
            print(l4[(k-1)%4])
        if m=='4':
            print('6')
except EOFError:
    pass

c

#include<stdio.h>
int main()
{
    int n,m;
    int l1[4]={2,4,8,6};
    int l2[4]={3,9,7,1};
    int l3[4]={7,9,3,1};
    int l4[4]={8,4,2,6};
    while(scanf("%d",&n)!=EOF)
    {
        m=n%10;
        if (m==0||m==1||m==5||m==6||m==9)
            printf("%d\n",m);
        if (m==2)
            printf("%d\n",l1[(n-1)%4]);
        if (m==3)
            printf("%d\n",l2[(n-1)%4]);
        if (m==7)
            printf("%d\n",l3[(n-1)%4]);
        if (m==8)
            printf("%d\n",l4[(n-1)%4]);
        if (m==4)
            printf("6\n");
    }
    return 0;
}

暴力不解释TvT

猜你喜欢

转载自blog.csdn.net/weixin_43262763/article/details/84495251
T
t1
今日推荐