第九届蓝桥杯大赛省赛C语言B组-填空题-乘积尾零(Java实现)

蓝桥杯历年真题分类(包含超详细题解) 📣专栏定位:为想备考蓝桥杯的小伙伴整理常考算法题解,祝大家都能取得满意的成绩! 阅读详情

乘积尾零

如下的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 

注意:需要提交的是一个整数,表示末尾零的个数。不要填写任何多余内容。

【题解】

第一种,因为2*5=10,所以只需把全部的数分解为2和5的质因数,看有多少个2和5相乘即可。

第二种,使用大数类累乘计算出完整结果,数一下尾数几个零

第三种(代码略)直接算出2个数的乘积,统计末尾有多少个0,去零后保留后四位再与下一个数相乘,直至全部数都乘完,统计0的个数

方法一:分解为2和5的质因数

package 省赛._09第九届;

public class C3乘积尾零2 {
	public static void main(String[] args) {
		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};
		int a2=0, a5=0;
		for(int i=0; i<100; i++) {
			while(a[i]>0) {
				if(a[i]%2==0) {
					a2++;
					a[i]=a[i]/2;
				}else if(a[i]%5==0) {
					a5++;
					a[i]=a[i]/5;
				}else {
					a[i]=0;
				}
			}
		}
		//因为2*5=10,所以只需把全部的数分解为2和5的质因数,看有多少个2和5相乘即可。
		System.out.println(Math.min(a2, a5));
	}
}

方法二:使用大数类累乘 

package 省赛._09第九届;

import java.math.BigInteger;

public class C3乘积尾零 {
	public static void main(String[] args) {
		//ctrl+f 查找替换
		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};
		//用大数类累乘,数一下尾数几个零
		BigInteger sum = BigInteger.ONE;
		for(int i=0; i<a.length; i++) 
			sum = sum.multiply(BigInteger.valueOf(a[i]));
		System.out.println(sum);
	}
}

结果

112142221918653666702449201125076321480831896827506427440731023870278025729017605653056978504625081950967446934475613782859722081655293509714201067451491601144000940085173776751705443818861349991600968912829674368417898694508188364854988187881792613763161458365648071883922054736261940944120399031297726871056069331318210560000000000000000000000000000000

答案:31

C语言 乘积取尾零(10*10=100 尾部有两个0) 题目分析:尾部相乘为零必须是2的次方数(x)和5的次方数(y)相乘,所以0的个数取决于x和y,假如x&lt;y,则零的个数为x;否则为y;源代码如下:#include &lt;stdio.h&gt;int main(int argc, char *argv[]){    long x,x2=0,x5=0,sum=1,i=1,count=0;     printf("请依次输入一串正整数,正整数串以... 阅读详情

相关推荐

DDR4内存PCB设计实战:8层板Fly-by拓扑信号完整性优化

本文深入探讨了DDR4内存条在8层PCB板上采用Fly-by拓扑时的信号完整性优化实战。文章详细解析了层叠规划、阻抗控制、电源分割、等长布线及串扰抑制等关键设计要点,并强调了仿真验证的重要性,为硬件工程师提供了从理论到实践的完整设计指南与自查清单。

weixin_29296241的博客 340

蓝桥-乘积尾零-java

importjava.math.BigInteger; importjava.util.Scanner; //1:无需package //2:类名必须Main,不可修改 publicclassMain{ publicstaticvoidmain(String[]args){ Scannersc=newScanner(System.in); BigIntegerb=newBigInteger("1"); Stringstr="56504542355...

weixin_52374381的博客 630

从零到一:Zephyr RTOS 在 STM32F4 上的移植与实战(含设备树配置详解)

本文详细介绍了如何从零开始将Zephyr RTOS移植到STM32F4开发板,涵盖开发环境搭建、硬件抽象层分析、设备树配置及系统裁剪等关键步骤。通过实战案例,帮助开发者掌握Zephyr RTOS在嵌入式设备中的应用,提升物联网边缘计算设备的开发效率。

weixin_26976635的博客 591

乘积尾零(C语言实现)

(蓝桥杯) 如下的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 43

weixin_49312527的博客 1667

FI 应计对象的创建和摊销

创建/修改:ACACTREE01/ACACTREE02 应计对象的过账:ACACPOSTING

nancyln9711的博客 903

突发环境事件怎么模拟?用Python+GIS实现高斯烟团模型(附完整代码)

本文详细介绍了如何利用Python与GIS技术实现高斯烟团模型,用于模拟化工泄漏等突发环境事件的动态扩散过程。通过核心原理讲解、参数快速获取方案、Python代码实现及GIS可视化集成,为环境应急人员提供了一套完整的解决方案。特别适合危险品运输事故等瞬态污染场景的应急决策支持。

weixin_33692284的博客 486

乘积尾零(C语言)

题目: 如下的十行数据,每行有10个数据(数据在代码中),请你求出他们的乘积的末尾有多少个零? 思路: 把数因式分解,求出每个数有多少个因子2和多少个因子5(因为1-9中只有2*5=10),题目的结果就是:取因子5和因子2数量少的那一个。 #include&amp;lt;iostream&amp;gt; using namespace std; int main(){ int data[] ={5650,45...

Zhangguohao666的博客 2019

SOC Boot学习(二)——JTAG Debug介绍

JTAG(Joint Test Action Group ,联合测试行动小组 ) 是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。JTAG 技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路 TAP ( Test Access Port ,测试访问口),通过专用的 JTAG 测试工具对内部节点进行测试。如今大多数比较复杂的器件都支持 JTAG 协议,如 ARM 、 DSP 、 FPGA 器件等。

yttt的博客 1607

BigInteger 类的使用

BigInteger abs() 返回大整数的绝对值 BigInteger add(BigInteger val) 返回两个大整数的和 BigInteger and(BigInteger val) 返回两个大整数的按位与的结果 BigInteger andNot(BigInteger val) 返回两个大整数与非的结果 BigInteger divide(BigInteger val) 返回两个大整数的商 double doubleValue() 返回大整数的double类型的值 float f.

weixin_41905320的博客 452

计算机图形学入门30:动画与模拟介绍

计算机图形学入门,动画与模拟,物理模拟,质点弹簧系统,运动学,粒子系统,动作捕捉。

YanisWu的博客 1485

基于MATLAB的拉盖尔-高斯光束叠加相位模拟

首先,我们需要设置模拟所需的参数,如光腰半径、传播距离、光束的角动量等。其中,(U)表示光束的电场复振幅,(r)和(\phi)分别是极坐标系下的径向和角向坐标,(z)是传播距离,(A)是归一化系数,(w_p)是光束的光腰半径,(L_p^q)是拉盖尔多项式,(k)是波数,(l)是光束的角动量。通过修改模拟参数,如光腰半径、传播距离、角动量等,您可以进一步探索和理解拉盖尔-高斯光束的叠加相位效应。拉盖尔-高斯光束是一种特殊的光束模式,具有广泛的应用领域,包括光学信息处理、激光加工和量子光学等。

m0_47037246的博客 945

第九届蓝桥杯 乘积尾零(Java大数)

先用Java大数直接计算,然后再填写答案。 答案为:31. 标题:乘积尾零 如下的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 4...

Romantic Chopin in C Sharp Minor 787

探索如何利用CST和ADS进行DDR的SIPI联合仿真

本文系统介绍了CST和ADS两款工具进行DDR信号完整性/电源完整性(SI/PI)联合仿真的方法。CST采用工作室协同方式,通过PCB布局导入、材料设置、模型分配等步骤,重点分析了电源阻抗优化和信号波形质量。ADS则利用SIPro、PIPro等专用工具,突出系统级验证和自动化优化功能。两者各有优势:CST擅长3D结构精确建模,ADS更适于快速系统验证。文章建议可根据项目需求混合使用两种工具,并提供了模型简化、频带选择等实用技巧。通过对比分析,为工程师选择仿真工具提供了决策参考。

一只豌豆象的博客 1150

第九届蓝桥杯个人赛省赛(软件类)C++B组试题第三题

一【题目描述】 标题:乘积尾零 如下的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 9...

充满好奇的threecat 555

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

蓝桥杯2018Java省赛B,2018年第九届蓝桥杯C/C++B组省赛

题目一:第几天2000年的1月1日,是那一年的第1天。那么,2000年的5月4日,是那一年的第几天?注意:需要提交的是一个整数,不要填写任何多余内容。答案:125天解法:新建文本文档 1.vbsmsgbox dateadd("d",124,"2000-1-1")1+124=125天题目二:明码汉字的字形存在于字库中,即便在今天,16点阵的字库也仍然使用广泛。16点阵的字库把每个汉字看成是16×16...

weixin_32420193的博客 120

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

[蓝桥杯2018初赛]乘积尾零java实现,方法很简单(特殊)

[蓝桥杯2018初赛]乘积尾零 题目描述 如下的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 204

YingxueSec 547

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

乘积尾零C语言代码,第九届蓝桥杯 C++省赛 B组第三题:乘积尾零 求n个数相乘后面有多少个0的方法...

求n个数相乘后面有多少个0的方法 :求出n个数中能有多少个2,多少个5,取其中较小的值就是答案。代码如下:#include#include#include#includeusingnamespacestd;typedeflonglongll;lla[1005]={5650,4542,3554,473,946,4114,3871,9073,90,4329,275...

weixin_34229622的博客 446

C程序-2018年第九届蓝桥杯B组-第三题:乘积尾零

如下的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 313...

qq_40788199的博客 1012

有趣c语言题之乘积尾零

乘积尾零 解题思路: 找到每个数的2和5约数的个数,然后相加起来最少的个数就是尾零的个数 #include&amp;amp;amp;lt;stdio.h&amp;amp;amp;gt; int main(){ int i,j,k,a2,a5,y2,z2,y5,z5,a[100]; for(i=0;i&amp;amp;amp;lt;100;i++){ scanf(&amp;amp;quot;%d&amp;amp;quot;,&amp;amp;

bxr的博客 709

乘积尾零的两种思路与解法

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 如下的 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 1

qq_53770580的博客 3582

蓝桥杯_乘积尾零_java

乘积尾零 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 如下的 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

seabirdssss的博客 418

乘积尾零 c语言蓝桥杯—2018年

#define _CRT_SECURE_NO_WARNINGS #include<stdio.h> int main() { int a[100] = { 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, 14.

fulai6的博客 937

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

标题:乘积尾零 如下的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 1...

tjy199610_10的博客 1867

2018-蓝桥杯-乘积尾零 填空-java

乘积尾零 题目描述: 如下的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 5...

qq_44852180的博客 788

第九届JavaA组第三题:乘积为零

乘积为零: 如下的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

weixin_45440070的博客 173

java计算乘积后面出现很多零_第九届蓝桥杯 乘积尾零(Java大数)

先用Java大数直接计算,然后再填写答案。答案为:31.标题:乘积尾零如下的10行数据,每行有10个整数,请你求出它们的乘积的末尾有多少个零?5650 4542 3554 473 946 4114 3871 9073 90 43292758 7949 6113 5659 5245 7432 3051 4434 6704 35949937 1173 6866 3397 4759 7557 3070 ...

weixin_39602579的博客 293
上一篇: 第九届蓝桥杯大赛省赛C语言B组-填空题-明码(Java实现)
下一篇: Leetcode力扣必备算法知识和练习题
青衫落拓客
博客等级 码龄8年 41粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值