Description
求 $1^{a_1} \times 2^{a_2} \times … \times 10^{a^{10}}$ 从低位往高位的第一个非零数是什么。
Solution
先质因数分解一下,然后把 2 和 5 同时消去相同的数。最后 暴力 / 快速幂 / 循环节 随便算答案即可。
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| #include <cstdio> #define maxN 20 int a[maxN]; int min (int x, int y) { return x < y ? x : y; } int pow (int x, int y) { if(!y) { return 1; } else { int dq = pow(x, y >> 1); if(!(y & 1)) { return dq * dq % 10; } else { return dq * dq % 10 * x % 10; } } } int main () { int Ans = 1; for(int i = 1;i <= 10; i++) { scanf("%d", &a[i]); } a[2] += 2 * a[4]; a[2] += a[6]; a[2] += 3 * a[8]; a[3] += a[6]; a[4] = 0; a[6] = 0; a[8] = 0; int x = min(a[2], a[5]); a[2] -= x, a[5] -= x; for(int i = 1;i <= 9; i++) { Ans *= pow(i, a[i]); Ans %= 10; } printf("%d", Ans); return 0; }
|