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
2
3
4
Sample Output
7
6
Hint
In the first case, 3 * 3 * 3 = 27, so the rightmost digit is 7.
In the second case, 4 * 4 * 4 * 4 = 256, so the rightmost digit is 6.
题解:
此题找规律即可,很简单的一题
代码:
#include <iostream>
#include <algorithm>
#define maxn 100000000
using namespace std;
int main() {
std::ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
int t;
cin >> t;
while (t--) {
int sum = 1;
int n;
cin >> n;
int N = n % 10;
int nn = n % 4;
if (nn == 0) {
nn = 4;
}
for (int i = 0; i < nn; i++) {
sum *= N;
sum=sum % 10;
}
cout << sum << endl;
}
return 0;
}
由于数据范围太大,我们不能一个一个遍历相乘