hdu 1061

给定N 求N^N中 最后一个数字  

直接暴力肯定不行 那就是找规律了。。。直接对每个数的最后一个数找规律

#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <string.h>
#include <string>

#define eps 1e-8
#define op operator
#define MOD  10009
#define MAXN  100100
#define INF 0x7fffffff

#define FOR(i,a,b)  for(int i=a;i<=b;i++)
#define FOV(i,a,b)  for(int i=a;i>=b;i--)
#define REP(i,a,b)  for(int i=a;i<b;i++)
#define REV(i,a,b)  for(int i=a-1;i>=b;i--)
#define MEM(a,x)    memset(a,x,sizeof a)
#define ll __int64

using namespace std;

int a[10][10];

void init()
{
    a[0][0]=1; a[0][1]=0;
    a[1][0]=1; a[1][1]=1;
    a[2][0]=4; a[2][1]=2; a[2][2]=4; a[2][3]=8; a[2][4]=6;
    a[3][0]=4; a[3][1]=3; a[3][2]=9; a[3][3]=7; a[3][4]=1;
    a[4][0]=2; a[4][1]=4; a[4][2]=6;
    a[5][0]=1; a[5][1]=5;
    a[6][0]=1; a[6][1]=6;
    a[7][0]=4; a[7][1]=7; a[7][2]=9; a[7][3]=3; a[7][4]=1;
    a[8][0]=4; a[8][1]=8; a[8][2]=4; a[8][3]=2; a[8][4]=6;
    a[9][0]=2; a[9][1]=9; a[9][2]=1;
}

int main()
{
//freopen("ceshi.txt","r",stdin);
    init();
    int tc;
    scanf("%d",&tc);
    while(tc--)
    {
        int n;
        scanf("%d",&n);
        int x=n%10;
        int y=n%a[x][0];
        if(y==0)
            printf("%d\n",a[x][a[x][0]]);
        else
            printf("%d\n",a[x][y]);
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值