abcdeffa's Blog

当局者迷,旁观者清。

0%

GMOJ J2472 【初中生数学题】

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;
}