首页 > 代码库 > [51nod]1004 n^n的末位数字
[51nod]1004 n^n的末位数字
给出一个整数N,输出N^N(N的N次方)的十进制表示的末位数字。
Input
一个数N(1 <= N <= 10^9)
Output
输出N^N的末位数字
Input示例
13
Output示例
3
快速幂
代码:
#include <iostream> using namespace std; #define LL long long #define Mod 10 LL Pow(LL a, LL n) { int ans = 1; while (n) { if (n & 1) ans = (ans*a)%Mod; a = (a*a)%Mod; n >>= 1; } return ans%10; } int main() { //freopen("1.txt", "r", stdin); int a; cin >> a; cout << Pow(a, a); return 0; }
解二:
其实可以通过找规律来确定,n的n次阶乘有如下规律:
4次一循环 所以只用计算1-4次方即可且只计算数字末位
代码:
#include <iostream> #include <math.h> #include <stdio.h> using namespace std; int main() { //freopen("1.txt", "r", stdin); int n; cin >> n; int a, b; a = n % 10; b = n % 4; if (b == 0) b = 4; cout << (int)pow(a, b)%10; return 0; }
[51nod]1004 n^n的末位数字
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。