[蓝桥杯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 
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 

输出
输出一个整数表示答案

解题思路:
乘积出现尾零,肯定是5和偶数相乘得到的,每出现一个10,就应从乘数中可以提出一个2、一个5。
所以我们把每个数的都分解成乘积的形式 ,统计出 2和 5的数量。

然后取较小那个。答案是31

代码如下:

#include <iostream>
using namespace std;int main() {int n;int er = 0;int wu = 0;for (int i = 1; i <= 100; i++) {cin >> n;while (!(n % 2)) {er++;n = n / 2;}while (!(n % 5)) {wu++;n = n / 5;}}cout << min(er, wu) << endl;return 0;
}

优化代码:

#include <iostream>
using namespace std;
typedef long long LL;
LL ans;
LL er, wu;int main() {int n;for (int i = 1; i <= 100; i++) {cin >> n;while (!(n % 10)) {ans++;n = n / 10;}while (!(n % 2)) {er++;n = n / 2;}while (!(n % 5)) {wu++;n = n / 5;}}cout << min(wu, er) + ans << endl;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/311991.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C#如何安全、高效地玩转任何种类的内存之Span的本质(一)。

前言作为.net程序员&#xff0c;使用过指针&#xff0c;写过不安全代码吗&#xff1f;为什么要使用指针&#xff0c;什么时候需要使用它&#xff0c;以及如何安全、高效地使用它&#xff1f;如果能很好地回答这几个问题&#xff0c;那么就能很好地理解今天了主题了。C#构建了一…

数据结构------选择排序

数据结构------选择排序 原理&#xff1a;参考趣学数据结构 代码&#xff1a; #include<stdio.h> #include<stdlib.h> void simpleSelectSort(int a[], int length) {//选择排序int j;for (int i 0; i < length - 1; i) {int k i;//每趟排序中找到最小的元素…

[蓝桥杯2018初赛]第几个幸运数-数论+枚举

代码如下&#xff1a; #include <iostream> #include <cmath> using namespace std; typedef long long LL; LL n 59084709587505; LL ans 0;int main() {for (int i 0; pow(3, i) < n; i)for (int j 0; pow(5, j) < n; j)for (int k 0; pow(7, k) <…

向大厂看齐!为自己的程序增加自动转储的功能!

如果你还不清楚什么是转储文件&#xff0c;不知道什么时候需要转储文件&#xff0c;请参考转储文件系列文章的第一篇 —— 转储文件知多少。前言不知道各位小伙伴有没有遇到过 微信 或者 QQ 崩溃的情况。它们在崩溃的时候都会自动弹出一个对话框&#xff0c;提示用户上传相关文…

sqlite3 c++ VS编译生成静态库

官网 https://www.sqlite.org/download.html 下载sqlite-amalgamation和x86版本下载sqlite-dll-win32-x86、x64位版本sqlite-dll-win64-x64 解压 SQLITE-AMALGAMATION包含 shell.csqlite3.csqlite3.hsqlite3ext.hsqlite-dll-win32-x86包含 sqlite3.def sqlite3.dll建立一个空…

数据结构----单源最短路径Dijkstra

数据结构----单源最短路径Dijkstra 原理&#xff1a;参考趣学数据结构 代码&#xff1a; stack.h 栈代码 #pragma once #include<stdio.h> #define maxSize 100 typedef struct stack {int * base;int * top; }stack; bool init(stack & Stack) {//栈的初始化Stack.b…

在.NET中执行Async/Await的两种错误方法

微信公众号&#xff1a;架构师高级俱乐部关注可了解更多的编程&#xff0c;架构知识。问题或建议&#xff0c;请公众号留言;如果你觉得此文对你有帮助&#xff0c;欢迎转发在.NET中执行异步/等待的两种错误方法 在应用开发中&#xff0c;我们为了提高应用程序的吞吐能力或者异步…

[蓝桥杯2018初赛]递增三元组-双指针,枚举,排序,前缀和

题目描述 给定三个整数数组 A [A1, A2, … AN], B [B1, B2, … BN], C [C1, C2, … CN]&#xff0c; 请你统计有多少个三元组(i, j, k) 满足&#xff1a; 1 < i, j, k < NAi < Bj < Ck 输入 第一行包含一个整数N。 第二行包含N个整数A1, A2, … AN。 第三行包含…

C#如何安全、高效地玩转任何种类的内存之Span的秉性特点(二)

前言读完上篇《C#如何安全、高效地玩转任何种类的内存之Span的本质(一)》&#xff0c;相信大家对span的本质应该非常清楚了。含着金钥匙出生的它&#xff0c;从小就被寄予厚望要成为.NET下编写高性能应用程序的重要积木&#xff0c;而且很多老前辈为了接纳它&#xff0c;都纷纷…

word List 05

word List 05 如果存在什么问题&#xff0c;欢迎批评指正&#xff01;谢谢&#xff01;

[蓝桥杯2018初赛]星期一-日期计算

题目描述 整个20世纪(1901年1月1日至2000年12月31日之间)&#xff0c;一共有多少个星期一&#xff1f; (不要告诉我你不知道今天是星期几) 输出 输出一个整数表示答案 代码如下&#xff1a; #include <iostream> using namespace std; int sum 0;int main() {for (int …

《ASP.NET Core 微服务实战》-- 读书笔记(第6章)

第 6 章 事件溯源与 CQRS在本章&#xff0c;我们来了解一下随着云平台一同出现的设计模式我们先探讨事件溯源和命令查询职责分离&#xff08;CQRS&#xff09;背后的动机与哲学事件溯源简介事实由事件溯源而来我们大脑就是一种事件溯源系统&#xff0c;接收感官多种形式刺激&am…

数据结构----快速排序

数据结构----快速排序 原理&#xff1a;参考趣学数据结构 代码&#xff1a; #include<stdio.h> #include<stdlib.h> int quickSort(int a[], int l, int h) {//快速排序int i l, j h, p a[l];while (i < j) {while (i<j&&a[j]>p) {//从右往左…

[蓝桥杯2018初赛]次数差-模拟,map容器

题目描述 x星球有26只球队&#xff0c;分别用a~z的26个字母代表。他们总是不停地比赛。 在某一赛段&#xff0c;哪个球队获胜了&#xff0c;就记录下代表它的字母&#xff0c;这样就形成一个长长的串。 国王总是询问&#xff1a;获胜次数最多的和获胜次数最少的有多大差距&…

编译调试 .NET Core 5.0 Preview 并分析 Span 的实现原理

很久没有写过 .NET Core 相关的文章了&#xff0c;目前关店在家休息所以有些时间写一篇新的????。这次的文章主要介绍如何在 Linux 上编译调试最新的 .NET Core 5.0 Preview 与简单分析 Span 的实现原理。微软从 .NET Core 5.0 开始把 GIT 仓库 coreclr 与 corefx 合并移动…

数据结构----归并排序

数据结构----归并排序 原理&#xff1a;参考趣学数据结构 代码&#xff1a; #include<stdio.h> #include<stdlib.h> #define N 100 void guiBingSort(int a[], int l, int h,int length) {//归并排序int mid (l h) / 2;int* b (int *)malloc(N*sizeof(int));i…

[蓝桥杯2018决赛]三角形面积-数论

海伦公式&#xff1a;三条边的边长为a、b、c&#xff0c;p(abc)/2&#xff0c;areasqrt(p∗(p−a)∗(p−b)∗(p−c))三条边的边长为a、b、c&#xff0c;p(abc)/2&#xff0c;areasqrt(p*(p-a)*(p-b)*(p-c))三条边的边长为a、b、c&#xff0c;p(abc)/2&#xff0c;areasqrt(p∗(…

利用obfuscar对.NET应用进行混淆

背景发布客户端程序产品时&#xff0c;免不了会遇到一些怀有恶意或有强烈学习欲望的用户尝试对程序进行反编译。对于一些编译成本地指令的程序&#xff08;如C、C&#xff09;&#xff0c;编译后可读性低&#xff0c;反编译和破解成本较高&#xff0c;不需要对代码进行太高强度…

数据结构---基数排序

数据结构—基数排序 原理&#xff1a;参考趣学数据结构 代码&#xff1a; #include<stdio.h> #include<stdlib.h> int getNumberBit(int number) {//获取数字的位数int x number,count0;if (x 0)return 1;while (x ! 0) {count;x / 10;}return count; } int g…

C# 版本 疫情传播仿真程序

前言前一阵子看到有人制作了《疫情传播仿真程序》&#xff0c;是用 Java做的。里面根据多种实际情况&#xff0c;如居民移动意愿、医护能力、病毒传播能力&#xff0c;来模拟疫情的发展。看完之后&#xff0c;我暗暗称奇&#xff0c;特别是结合一些视频和照片&#xff0c;确实做…