solution.md 2.8 KB
Newer Older
每日一练社区's avatar
每日一练社区 已提交
1
# 乘积尾零
F
fix bug  
feilong 已提交
2

每日一练社区's avatar
每日一练社区 已提交
3 4 5 6 7 8 9 10 11 12 13 14 15 16
如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?
```
5650 4542 3554 473 946 4114 3871 9073 90 4329
2758 7949 6113 5659 5245 7432 3051 4434 6704 3594
9937 1173 6866 3397 4759 7557 3070 2287 1453 9899
1486 5722 3135 1170 4014 5510 5120 729 2880 9019
2049 698 4582 4346 4427 646 9742 7340 1230 7683
5693 7015 6887 7381 4172 4341 2909 2027 7355 5649
6701 6645 1671 5978 2704 9926 295 3125 3878 6785
2066 4247 4800 1578 6652 4616 1113 6205 3264 2915
3966 5291 2904 1285 2193 1428 2265 8730 9436 7074
689 5510 8243 6114 337 4096 8199 7313 3685 211
```

每日一练社区's avatar
每日一练社区 已提交
17
以下<font color="red">错误</font>的选项是?
每日一练社区's avatar
每日一练社区 已提交
18

每日一练社区's avatar
每日一练社区 已提交
19
## aop
F
fix bug  
feilong 已提交
20

每日一练社区's avatar
每日一练社区 已提交
21
### before
F
fix bug  
feilong 已提交
22

每日一练社区's avatar
每日一练社区 已提交
23
```cpp
每日一练社区's avatar
每日一练社区 已提交
24
#include <bits/stdc++.h>
每日一练社区's avatar
每日一练社区 已提交
25 26 27
using namespace std;
```
### after
F
fix bug  
feilong 已提交
28

每日一练社区's avatar
每日一练社区 已提交
29 30 31 32 33
```cpp

```

## 答案
F
fix bug  
feilong 已提交
34

每日一练社区's avatar
每日一练社区 已提交
35 36 37 38 39 40 41 42 43 44 45
```cpp
int main()
{
    int count2 = 0, count5 = 0;
    int num;
    for (int i = 0; i < 100; i++)
    {
        cin >> num;
        while (num % 5 == 0)
        {
            count5++;
每日一练社区's avatar
每日一练社区 已提交
46
            num %= 5;
每日一练社区's avatar
每日一练社区 已提交
47 48 49 50
        }
        while (num % 2 == 0)
        {
            count2++;
每日一练社区's avatar
每日一练社区 已提交
51
            num %= 2;
每日一练社区's avatar
每日一练社区 已提交
52 53 54 55 56 57 58 59 60
        }
    }
    int ans = count2 < count5 ? count2 : count5;
    cout << ans;
    return 0;
}
```
## 选项

F
fix bug  
feilong 已提交
61

每日一练社区's avatar
每日一练社区 已提交
62
### A
F
fix bug  
feilong 已提交
63

每日一练社区's avatar
每日一练社区 已提交
64 65 66
```cpp
int main()
{
每日一练社区's avatar
每日一练社区 已提交
67 68

    long long int a, sum = 1, aum = 0;
每日一练社区's avatar
每日一练社区 已提交
69 70
    for (int i = 0; i < 100; i++)
    {
每日一练社区's avatar
每日一练社区 已提交
71 72 73
        cin >> a;
        sum = sum * a;
        while ((sum % 10) == 0)
每日一练社区's avatar
每日一练社区 已提交
74
        {
每日一练社区's avatar
每日一练社区 已提交
75 76
            sum = sum / 10;
            aum++;
每日一练社区's avatar
每日一练社区 已提交
77
        }
每日一练社区's avatar
每日一练社区 已提交
78
        sum = sum % 10000;
每日一练社区's avatar
每日一练社区 已提交
79
    }
每日一练社区's avatar
每日一练社区 已提交
80
    printf("%lld", aum);
每日一练社区's avatar
每日一练社区 已提交
81 82 83 84 85
    return 0;
}
```

### B
F
fix bug  
feilong 已提交
86

每日一练社区's avatar
每日一练社区 已提交
87
```cpp
每日一练社区's avatar
每日一练社区 已提交
88 89 90 91 92 93 94 95 96 97
int a[] = {5650, 4542, 3554, 473, 946, 4114, 3871, 9073, 90, 4329,
           2758, 7949, 6113, 5659, 5245, 7432, 3051, 4434, 6704, 3594,
           9937, 1173, 6866, 3397, 4759, 7557, 3070, 2287, 1453, 9899,
           1486, 5722, 3135, 1170, 4014, 5510, 5120, 729, 2880, 9019,
           2049, 698, 4582, 4346, 4427, 646, 9742, 7340, 1230, 7683,
           5693, 7015, 6887, 7381, 4172, 4341, 2909, 2027, 7355, 5649,
           6701, 6645, 1671, 5978, 2704, 9926, 295, 3125, 3878, 6785,
           2066, 4247, 4800, 1578, 6652, 4616, 1113, 6205, 3264, 2915,
           3966, 5291, 2904, 1285, 2193, 1428, 2265, 8730, 9436, 7074,
           689, 5510, 8243, 6114, 337, 4096, 8199, 7313, 3685, 211};
每日一练社区's avatar
每日一练社区 已提交
98 99
int main()
{
每日一练社区's avatar
每日一练社区 已提交
100
    int k1 = 0, k2 = 0;
每日一练社区's avatar
每日一练社区 已提交
101 102
    for (int i = 0; i < 100; i++)
    {
每日一练社区's avatar
每日一练社区 已提交
103 104 105 106
        while (!(a[i] % 2))
            a[i] /= 2, k1++;
        while (!(a[i] % 5))
            a[i] /= 5, k2++;
每日一练社区's avatar
每日一练社区 已提交
107
    }
每日一练社区's avatar
每日一练社区 已提交
108 109
    cout << min(k1, k2);

每日一练社区's avatar
每日一练社区 已提交
110 111 112 113 114
    return 0;
}
```

### C
F
fix bug  
feilong 已提交
115

每日一练社区's avatar
每日一练社区 已提交
116 117 118
```cpp
int main()
{
每日一练社区's avatar
每日一练社区 已提交
119 120 121
    int t_cnt, f_cnt, data = 0;
    t_cnt = f_cnt = 0;

每日一练社区's avatar
每日一练社区 已提交
122 123
    for (int i = 0; i < 100; i++)
    {
每日一练社区's avatar
每日一练社区 已提交
124 125
        cin >> data;
        while (data % 5 == 0)
每日一练社区's avatar
每日一练社区 已提交
126
        {
每日一练社区's avatar
每日一练社区 已提交
127 128
            f_cnt++;
            data /= 5;
每日一练社区's avatar
每日一练社区 已提交
129
        }
每日一练社区's avatar
每日一练社区 已提交
130
        while (data % 2 == 0)
每日一练社区's avatar
每日一练社区 已提交
131
        {
每日一练社区's avatar
每日一练社区 已提交
132 133
            t_cnt++;
            data /= 2;
每日一练社区's avatar
每日一练社区 已提交
134 135
        }
    }
每日一练社区's avatar
每日一练社区 已提交
136 137
    cout << min(t_cnt, f_cnt) << endl;

每日一练社区's avatar
每日一练社区 已提交
138 139 140
    return 0;
}
```