HDU - 1061 Rightmost Digit

来源:互联网 发布:ff14拉拉菲尔捏脸数据 编辑:程序博客网 时间:2024/06/05 00:45

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;}



0 0
原创粉丝点击