码迷,mamicode.com
首页 > 其他好文 > 详细

51Nod 1004 n^n的末位数字

时间:2018-10-22 22:23:40      阅读:186      评论:0      收藏:0      [点我收藏+]

标签:快速幂   output   names   iostream   sign   quic   次方   str   mes   

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 <cstdio>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <cmath>
#include <stack>
#include <vector>
#include <map>
#include <set>
#include <queue>
#include <utility>
#define ll long long
#define ull_ unsigned long long

using namespace std ;

ll quick_pow( ll a , ll b ){
    ll base = a , ans = 1 % 10 ;
    while ( b ){
        if ( b & 1 ){
            ans = (ans % 10 * base % 10) % 10 ;
        }
        base = base * base % 10 ;
        b >>= 1 ;
    }
    return ans ;
}

int main(){
    int n ;
    cin >> n ;
    cout << quick_pow(n , n) << endl ;
    return 0 ;
}

51Nod 1004 n^n的末位数字

标签:快速幂   output   names   iostream   sign   quic   次方   str   mes   

原文地址:https://www.cnblogs.com/Cantredo/p/9833175.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!