首页 > 代码库 > HDU - 1061 Rightmost Digit
HDU - 1061 Rightmost Digit
Description
Given a positive integer N, you should output the most right digit of N^N.
Input
The input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow.
Each test case contains a single positive integer N(1<=N<=1,000,000,000).
Each test case contains a single positive integer N(1<=N<=1,000,000,000).
Output
For each test case, you should output the rightmost digit of N^N.
Sample Input
2 3 4
Sample Output
7 6
题意:取N^N的最后一位
思路:裸的快速幂取模
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> typedef long long ll; using namespace std; int pow_mod(int a, int n, int m) { if (n == 0) return 1; if (n == 1) return a%m; int x = pow_mod(a, n/2, m); ll ans = (ll) x*x%m; if (n % 2 == 1) ans = ans * a % m; return (int)ans; } int main() { int t; int n; scanf("%d", &t); while (t--) { scanf("%d", &n); ll ans = pow_mod(n, n, 10); cout << ans << endl; } return 0; }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。