题目描述

本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

如下的 1010 行数据,每行有 1010 个整数,请你求出它们的乘积的末尾有多少个零?

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

运行限制

  • 最大运行时间:1s
  • 最大运行内存: 128M

如果直接求,不出十个数必定爆数,所以这题要转换思路,首先就是因数分解,

如果要出现零,不一定会有2,4,也可以有6,8等等,但是一定会有5的存在,

但是2,6,8等都有一个特点,那就是都是偶数,他们的最大公因数又都是2

所以,我们可以把所有的数表示为2,5与其他数的乘积,这样的话一对2,5就能出现一个零

我们只需要分别计算2,5的数量即可

#include<iostream>
using namespace std;
int js2=0,js5=0;
void js(int x)
{while(x%2==0){js2++;x/=2;}while(x%5==0){js5++;x/=5;}
}
int main()
{int a;for(int i=0;i<100;i++){cin>>a;js(a);}if(js2>=js5)cout<<js5;elsecout<<js2;return 0;
}

我头开始没有想这么多,写出来后参看别人的发现可以这么简洁,我的思路稍微麻烦一点,但是非常简单暴力,就是把第一个末尾不为零的拿出来,并且统计末尾的零的个数,然后把零删去,然后全部相乘继续带去入函数统计0的个数,当然如果这个数是5的话就全部取出(不包括末尾的零)有兴趣也可以看看下面代码

#include<iostream>
using namespace std;
int sum=0;
int qu(int x)
{while(x%10==0){x=x/10;sum++;}if(x%10!=5)return x%10;else return x;//6250
}
int main()
{//求取从右向左第一个不为零的数以及后面0int a[100][100];for(int i=0;i<10;i++){for(int j=0;j<10;j++){cin>>a[i][j];a[i][j]=qu(a[i][j]);}}int all=1;for(int i=0;i<10;i++){for(int j=0;j<10;j++){all=all*a[i][j];all=qu(all);}}cout<<sum;return 0;
}

乘积尾零的两种思路与解法相关推荐

  1. 2018蓝桥杯 航班时间和乘积尾零

    法一答案均转自https://blog.csdn.net/zhanw15/article/details/79845250 标题:乘积尾零 如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾 ...

  2. 蓝桥杯2018年第九届真题——乘积尾零

    乘积尾零 一.题目内容 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可. 如下的 10 行数据,每行有 10 个整数,请你求出它们的乘积的末尾有多少个零? 5650 4542 ...

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

    欢迎大家加入CSDN-蓝桥杯竞赛社区 https://bbs.csdn.net/forums/lanqiaobei 蓝桥杯历届题目及解析汇总(附思路及代码)[点击此进入] 蓝桥杯,ACM算法学习[文档 ...

  4. 【Code Pratice】—— 乘积尾零、分数、第几个幸运数字

    文章目录 1 | 乘积尾零 题目 思路 逻辑代码 2 | 分数 题目 思路 逻辑代码 3 | 第几个幸运数 题目 思路 逻辑代码 1 | 乘积尾零 题目 如下的10行数据,每行有10个整数,请你求出它 ...

  5. 蓝桥杯练习题十一 - 乘积尾零(c++)

    题目如下 如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零? 5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 7949 61 ...

  6. [蓝桥杯2018初赛]乘积尾零

    乘积尾零 题目描述 如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零? 5650 4542 3554 473 946 4114 3871 9073 90 4329 2758 79 ...

  7. 5.python解答蓝桥杯18真题 乘积尾零

    5.python解答蓝桥杯18真题 乘积尾零 标题:乘积尾零 如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零? 5650 4542 3554 473 946 4114 3871 ...

  8. 第七篇:使用 CUDA 进行计算优化的两种思路

    前言 本文讨论如何使用 CUDA 对代码进行并行优化,并给出不同并行思路对均值滤波的实现. 并行优化的两种思路 思路1: global 函数 在 global 函数中创建出多个块多个线程对矩阵每个元素 ...

  9. php数字加零,php实现数字补零的两种方法

    本篇文章给大家带来的内容是关于php实现数字补零的两种方法 ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在php中有两个函数--至少有两个是否有其他的我还不知道,能够实现数字补零 ...

最新文章

  1. Present ViewController详解
  2. oracle伪客户端的安装(oracle不安装客户端)
  3. oracle emp数据库或数据误删恢复
  4. 如何选择 Git 分支模式?
  5. ip 地址 192.168.1.255 代表( )。_判定IP地址合法性的三种方法
  6. 为Hyper-V上的Redhat Linux 打上集成服务
  7. 力扣530. 二叉搜索树的最小绝对差(JavaScript)
  8. 如何在变化的时代中,抓住新时代的红利让自己跟着趋势赚钱
  9. 800变频器故障代码_变频器通用故障码意义汇总讲解
  10. 简记SqueezeNet
  11. 数据库路由中间件MyCat - 源代码篇(11)
  12. java字符串分割方法
  13. We discovered one or more bugs in your app when reviewed on iPhone and iPad running iOS 14.1
  14. 华为云计算中心 全国部署节点总结
  15. 【Java知识体系】Redis实用教程,深入原理
  16. 51单片机(五)独立键盘检测与矩阵键盘检测
  17. 阿里云物联网平台python_基于阿里云物联网平台,我们这样实现简易出入监控
  18. 学习opengl之为立方体六个面贴上不同的纹理图片
  19. sql server 排序按笔画
  20. 中北大学计算机应用基础课后答案,中北大学计算机与控制工程学院研究生导师介绍:秦品乐...

热门文章

  1. 魔兽争霸war3心得体会(四):不死族vs人族1本火魔塔
  2. SMILES化学式解析
  3. 9.5、Libgdx加速度计
  4. GIF动画制作工具哪个好
  5. Java Socket udp协议在网络读卡器上的使用
  6. 数字三角形(java)
  7. 郭明錤:Galaxy Note 10有6.5、6.7英寸两种机型
  8. 法拉第效应维尔德常数_法拉第旋光效应实验讲义.doc
  9. matlab根轨迹临界稳定,根轨迹分析:根轨迹分析稳定性
  10. 网络教室服务器维护,学校校园因特网网络维护制度方案范文