51Nod——1004 n^n的末位数字

基准时间限制:1 秒 空间限制:131072 KB

给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字。
Input

一个数N(1 <= N <= 10^9)

Output

输出N^N的末位数字

Input示例

13

Output示例

3

思路:
快速幂瞬秒。

代码:

#include <iostream>
#include <cstdio>

using namespace std;

long long myPow(long long t,long long N){

    long long mid = 1;

    while(N){
        if(N&1){
            mid *= t;
            mid %= 10;
        }
        t *= t;
        t %= 10;
        N >>= 1;
    }

    return mid;
}

int main(){

    long long N;
    cin>>N;

    long long t = N%10;

    cout<<myPow(t,N)<<endl;

    return 0;
}
posted @ 2017-10-14 17:43  Assassin_poi君  阅读(173)  评论(0编辑  收藏  举报