标签:快速幂 output names iostream sign quic 次方 str mes
给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字。
一个数N(1 <= N <= 10^9)
输出N^N的末位数字
13
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 ;
}
标签:快速幂 output names iostream sign quic 次方 str mes
原文地址:https://www.cnblogs.com/Cantredo/p/9833175.html