HDU 1061 The rightmost digit

题意:

       给定一个整数N求N^N的结果的最后一位是多少,如3^3 = 3 * 3 * 3 = 27则此时最后一位为7。1 <= N <= 1000000000

解法:

       刚开始用最暴力的方法0(N^2)必然超时,后面想打表,但是发现太大了,要打很久,最后发现答案有循环节,然后改了下代码果断A了。

 

AC代码如下:

/* Author: ACb0y Date: 2010年12月7日21:01:24 Type: math ProblemID: hdu 1061 the rightmost digit Result: AC */ #include <stdio.h> char ans[] = { '1','4','7','6','5','6','3','6','9','0', '1','6','3','6','5','6','7','4','9','0' }; int main() { #ifndef ONLINE_JUDGE freopen("in.txt", "r", stdin); #endif int cas; int n; scanf("%d", &cas); while (cas--) { scanf("%d", &n); --n; printf("%c/n", ans[n % 20]); } return 0; }  

 

你可能感兴趣的:(HDU 1061 The rightmost digit)