编程语言
首页 > 编程语言> > C/C++编程学习 - 第20周 ⑦ n^n的末位数字

C/C++编程学习 - 第20周 ⑦ n^n的末位数字

作者:互联网

题目链接

题目描述

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

Input
一个数N(1 <= N <= 109

Output
输出N^N的末位数字

Sample Input

13

Sample Output

3

思路

快速幂(取模),这里给出快速幂取模的模板。

快速幂取模:

ll Quick_Mod(ll a, ll b, ll mod)
{
    ll res = 1, term = a % mod;
    while(b)
    {
        if(b & 1) res = (res * term) % mod;
        term = (term * term) % mod;
        b >>= 1;
    }
    return res;
}

C++代码:

#include<bits/stdc++.h>
using namespace std;
long long solve(long long a, long long b)
{
	long long ans = 1;
	a %= 10;
	while(b)
	{
		if(b & 1) ans = (ans * a) % 10;
		b /= 2;
		a = (a * a) % 10;
	}
	return ans;
}
int main()
{
	long long n;
	while(cin >> n)
		cout << solve(n, n) % 10 << endl;
	return 0;
}

标签:term,20,C++,res,ll,long,末位,ans,mod
来源: https://blog.csdn.net/qq_44826711/article/details/113550935