求大量N^N的值最右边的数字,即最低位。
它将能够解决一个简单二分法。
只是要注意溢出,只要把N % 10之后。我不会溢出,代替使用的long long。
#include <stdio.h> int rightMost(int n, int N) { if (n == 0) return 1; int t = rightMost(n / 2, N); t = t * t % 10;; if (n % 2) t *= N; return t % 10; } int main() { int T, n; scanf("%d", &T); while (T--) { scanf("%d", &n); printf("%d ", rightMost(n, n%10)); } return 0; }
版权声明:笔者靖心脏,景空间地址:http://blog.csdn.net/kenden23/。只有经过作者同意转载。