2018蓝桥杯省赛C/C++ B组——乘积尾零

原创 2018年04月15日 11:36:02

题目大意

如下的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
注意:需要提交的是一个整数,表示末尾零的个数。不要填写任何多余内容。

题解

曾经做过一道题,求阶乘末尾零的个数,其实跟这道题道理相同。
首先我们想一想,0是怎么产生的。只有在 出现2*5的时候,才会出现0。。
所以这道题,完全可以转化为统计所有数中2的个数和5的个数的最小值。

代码

#include<iostream>

using namespace std;
long long 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, 
};
int main(){
    int num_2 = 0, num_5 = 0;
    for(int i = 0;i < 100;i++){
        int num1 = a[i];
        int num2 = a[i];
        while(num1 % 2 == 0){   //统计2的个数 
            num_2++;
            num1 /= 2;
        }
        while(num2 % 5 == 0){ //统计5的个数 
            num_5++;
            num2 /= 5;
        }
    }
    int ans = min(num_2 , num_5);
    cout << ans << endl;
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Jane_96/article/details/79947723

第九届蓝桥杯 乘积尾零

标题:乘积尾零如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6...
  • u013377068
  • u013377068
  • 2018-04-03 16:33:48
  • 129

2018年第九届蓝桥杯【C++省赛B组】【第三题:乘积尾零】——附解题代码

2018年第九届蓝桥杯题目汇总 https://blog.csdn.net/qq_34202873/article/details/79784728 第三题 标题:乘积尾零 ...
  • qq_34202873
  • qq_34202873
  • 2018-04-02 09:03:00
  • 960

第九届蓝桥杯省赛C++B组 乘积尾零

标题:乘积尾零如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6...
  • ryo_218
  • ryo_218
  • 2018-04-03 21:37:38
  • 52

2018省赛第九届蓝桥杯真题C语言B第三题题解 乘积尾零

2018第九届蓝桥杯C++省赛B组[最新题解汇总]标题:乘积尾零如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?5650 4542 3554 473 946 4114 3871...
  • nka_kun
  • nka_kun
  • 2018-04-02 10:13:15
  • 265

2018 蓝桥杯 省赛 B组 原题 C语言B组 第3题 第九届蓝桥杯真题 +答案+解析

标题:乘积尾零如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6...
  • feifancaicai
  • feifancaicai
  • 2018-04-01 19:10:13
  • 865

2018 蓝桥杯 省赛 B组 原题 C语言B组 第3题 第九届蓝桥杯真题 +答案+解析

标题:乘积尾零 如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零? 5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 ...
  • tjy199610_10
  • tjy199610_10
  • 2018-04-02 15:25:39
  • 22

第九届蓝桥杯——第三题-乘积尾零

标题:乘积尾零如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 6...
  • qq_40727946
  • qq_40727946
  • 2018-04-06 13:59:23
  • 43

计蒜客 2018 蓝桥杯省赛 B 组模拟赛(五)E. 代码填空:末尾零的个数

【题目链接】:https://nanti.jisuanke.com/t/25088【题目描述】:N! 末尾有多少个 0 呢?N! = 1×2×⋯×N。代码框中的代码是一种实现,请分析并填写缺失的代码。...
  • mcp3128
  • mcp3128
  • 2018-03-26 12:35:17
  • 255

2018 蓝桥杯省赛 B 组模拟赛(五) 代码填空:末尾零的个数

N! 末尾有多少个 00 呢?N! = 1 \times 2 \times \cdots \times NN!=1×2×⋯×N。代码框中的代码是一种实现,请分析并填写缺失的代码。这题还是51Nod的原...
  • qq_33193309
  • qq_33193309
  • 2018-03-26 16:42:52
  • 160

2018_蓝桥杯省赛C/C++_B组总结

    2018年4月1号,很独特的日子,愚人节+蓝桥杯==发现自己很垃圾??   第一题:第几天    直接打开日历算的。。。。第二题:看字符回答数字   负数转换成二进制忘了,用电脑的计算器去做,...
  • qq_39671636
  • qq_39671636
  • 2018-04-02 00:24:05
  • 107
收藏助手
不良信息举报
您举报文章:2018蓝桥杯省赛C/C++ B组——乘积尾零
举报原因:
原因补充:

(最多只允许输入30个字)