標籤:des style blog os io for 2014 div
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).
Output
For each test case, you should output the rightmost digit of N^N.
Sample Input
234
Sample Output
76
題意:取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;}