51NOD 1004 n^n的末位数字

题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1004


1004 n^n的末位数字
题目来源:  Author Ignatius.L (Hdu 1061)
基准时间限制:1 秒 空间限制:131072 KB 分值: 5  难度:1级算法题
 收藏
 关注
给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字。
Input
一个数N(1 <= N <= 10^9)
Output
输出N^N的末位数字
Input示例
13
Output示例
3


解析;  一个一个的乘必然超时,快速幂


代码:


#include
#include
#include
#include
#include
#include
#include
#include
#include
#define N 109
using namespace std;
const int inf = 0x3f3f3f3f;
typedef long long LL;
const int mod = 1000000009;
const double eps = 1e-8;

int q_mod(LL a, LL b)
{
    LL ans = 1;
    while(b)
    {
        if(b&1) ans = (ans * a) % 10;
        a = ((a % 10) * (a % 10));
        b >>= 1;
    }
    return ans;
}

int main()
{
    LL n;
    scanf("%lld", &n);
    printf("%d\n", q_mod(n, n));
    return 0;
}




你可能感兴趣的:(51NOD)