hdu1.2.4 Rightmost Digit
2014-08-16 17:44
176 查看
[align=left]Problem Description[/align] Given a positive integer N, you should output the most right digit of N^N. |
[align=left]Input[/align] 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). |
[align=left]Output[/align] For each test case, you should output the rightmost digit of N^N. |
[align=left]Sample Input[/align]2 3 4 |
[align=left]Sample Output[/align]7 6Hint 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. |
import java.io.FileInputStream;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.OutputStreamWriter;
import java.io.StreamTokenizer;
public class Main implements Runnable
{
private static final boolean DEBUG = false;
private BufferedReader cin;
private PrintWriter cout;
private StreamTokenizer tokenizer;
private int n;
private void init()
{
try {
if (DEBUG) {
cin = new BufferedReader(new InputStreamReader(
new FileInputStream("d:\\OJ\\uva_in.txt")));
} else {
cin = new BufferedReader(new InputStreamReader(System.in));
}
cout = new PrintWriter(new OutputStreamWriter(System.out));
tokenizer = new StreamTokenizer(cin);
} catch (Exception e) {
e.printStackTrace();
}
}
private String next()
{
try {
tokenizer.nextToken();
if (tokenizer.ttype == StreamTokenizer.TT_EOF) return null;
else if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
return String.valueOf((int)tokenizer.nval);
} else return tokenizer.sval;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
private void input()
{
n = Integer.parseInt(next());
}
private void solve()
{
int product = 1;
int a = n % 10, b = n;
while (b != 0) {
if ((b & 1) != 0) product = product * a % 10;
a = (a % 10) * (a % 10) % 10;
b >>= 1;
}
cout.println(product);
cout.flush();
}
public void run()
{
init();
int t = Integer.parseInt(next());
while (t-- > 0) {
input();
solve();
}
}
public static void main(String[] args)
{
new Thread(new Main()).start();
}
}
相关文章推荐
- HDU-1061-Rightmost Digit
- HDU 1061 Rightmost Digit 【快速幂 Or 规律(瞎搞)】
- HDU Rightmost Digit
- HDU--1061--Rightmost Digit
- 【HDU】1061 Rightmost Digit
- Rightmost Digit 【hdu-1061】【快速幂】
- HDU 1061 Rightmost Digit
- HDU 1061 Rightmost Digit
- HDU 1061 Rightmost Digit
- hdu 1061 Rightmost Digit
- HDU - 1061 Rightmost Digit
- HDU - 1061 Rightmost Digit
- 【快速幂取模】HDU 1061---Rightmost Digit
- HDU 1051 - Rightmost Digit
- HDU - 1061 Rightmost Digit(数学)
- HDU 1061 Rightmost Digit
- HDU:1061 Rightmost Digit(规律)
- HDU——1061 Rightmost Digit
- 【hdu - 1061 Rightmost Digit】
- hdu1061 Rightmost Digit