求最小公倍数(华为机试,Go)
目录
题目描述
解决方案
代码
代码走读
传送门
题目描述
正整数A和正整数B的最小公倍数是指:能被A和B整除的最小的正整数值。设计一个算法,求A和B的最小公倍数。
输入/输出示例
输入 | 输出 | 说明 |
5 7 | 35 | 35是整除5和7的最小数字。 |
解决方案
对于正整数A和B,假设这两个数字的最大值为max,最小值为min。则他们的最小公倍数范围在闭区间 [max, max * min] 中。我们定义一个临时变量current = max,current依次递增到 max * min,在每一次递增时观察其是否是A,B的公倍数,若是则找到A和B的最小公倍数current。
对于current的递增有一个注意点。在current递增的过程中,依次自增1会浪费大量的时间。current只需要每次递增max就可以准确找到A和B的最小公倍数了。(即每次递增max值保证整除max,若找到同时能够整除两者则为最小公倍数)
代码
package mainimport ("bufio""fmt""os""strconv""strings"
)func MaxNumber(number1, number2 int) int {if number1 > number2 {return number1}return number2
}func main() {reader := bufio.NewReader(os.Stdin)data, _, _ := reader.ReadLine()dataList := strings.Split(string(data), " ")number1, _ := strconv.Atoi(dataList[0])number2, _ := strconv.Atoi(dataList[1])min := MaxNumber(number1, number2)current := minfor {if current % number1 == 0 && current % number2 == 0 {break}current += min}fmt.Println(current)
}
代码走读
package mainimport ("bufio""fmt""os""strconv""strings" )// 返回两个int数的最大值 func MaxNumber(number1, number2 int) int {if number1 > number2 {return number1}return number2 }func main() {// 读取两个正整数reader := bufio.NewReader(os.Stdin)data, _, _ := reader.ReadLine()dataList := strings.Split(string(data), " ")number1, _ := strconv.Atoi(dataList[0])number2, _ := strconv.Atoi(dataList[1])// 确定最小公倍数范围下限minmin := MaxNumber(number1, number2)max := number1 * number2// 遍历current, current每次递增min(即A、B两个数中的最大值)。若current同时满足整除A和B,则跳出循环,此时current为最小公倍数current := minfor {if current >= max {break}if current % number1 == 0 && current % number2 == 0 {break}current += min}fmt.Println(current) }
传送门
string.Spilt函数https://blog.csdn.net/TCatTime/article/details/100511043
试题链接
求最小公倍数(华为机试,Go)相关推荐
- 华为机试第十五题:HJ15 求int型正整数在内存中存储时1的个数
华为机试第十五题:HJ15 求int型正整数在内存中存储时1的个数 一.网址链接 二.题目描述 ①描述 ②输入描述 ③输出描述 ④示例一 ⑤示例二 三.代码实现 ①Java代码实现 ②C++代码实现 ...
- 华为机试-求int型数据在内存中存储时1的个数
问题描述 输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数. 输入描述: 输入一个整数(int类型) 输出描述: 这个数转换成2进制后,输出1的个数 示例 示例1 输入 5 输出 ...
- 【强烈推荐收藏】坚持3个月爆肝华为机试108题C++全解(适合新手入门,就业必刷套题)
作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 金九银十,金三银四.当前正处于校招.社招的火热期,之前就想为正在筹备就业的同学们准备刷题宝 ...
- Java算法:华为机试算法(下),华为算法Java版,牛客网华为算法73~108题
接上篇:Java算法:华为机试算法(中),华为算法Java版,牛客网华为算法55~72题 HJ73 计算日期到天数转换 计算日期到天数转换 题目描述 根据输入的日期,计算是这一年的第几天.. 测试 ...
- 华为机试108题(C 语言解答)
Nowcoder题库链接:华为机试 HJ1 字符串最后一个单词的长度(字符串) 输入:hello nowcoder输出:8说明: 最后一个单词为nowcoder,长度为8 示例代码: HJ1.c #i ...
- 华为机试-字符串子序列II
华为机试-字符串子序列II 1.思路 2.代码 1.思路 理解这个抽象题目,其实就是一个求最长子序列的题目.求最长子序列我们一般使用动态规划来做. 与以往不同的是,我们需要倒序求最长子序列,这样可以求 ...
- 【华为机试真题Java】从入门到入职-真题列表导读
写在前面 本专栏有100+道题(持续更新中),都是往期的HW机试真题,根据过往同学的经验基本都会考到原题.大家有什么不懂的都可以留言. 华为机试有三道题目,第一道和第二道属于简单或中等题,分值为100 ...
- 牛客在线编程-华为机试-中等
牛客在线编程题目-华为机试-中等 题号 题目 知识点 难度 通过率 HJ16 购物单 动态规划 中等 21.21% HJ17 坐标移动 字符串 中等 24.79% HJ20 密码验证合格程序 数组 字 ...
- 华为机试—介绍、剖析、建议
一.华为机试介绍 1.大致介绍 时间:120分钟 环境:Visual Studio(去年是vs2005).Visual C++.VC 6.0.Eclipse(Java) 题量:共3题 初级题--60分 ...
- 华为机试python编程题_牛客网华为机试题之Python解法
牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...
最新文章
- iOS手机 相册 相机(Picker Write)
- 无人驾驶运动学模型——线性时变模型预测控制的思路推演过程_百叶书的博客-CSDN博客_线性时变模型预测控制 转
- linux c++编写访问mysql程序,访问数据库出错,解决方法
- 【新功能】MaxCompoute禁止Full Scan功能开放
- 学会用各种方式备份MySQL数据库
- TensorFlow 2.0不好用?会了是“真香”!
- 【spring boot】url中传递session id
- 素数对(信息学奥赛一本通-T1403)
- 全国哀悼日网站页面变成灰色的filter方法
- LabVIEW编程LabVIEW开发Memmert oven温箱例程与相关资料
- Vscode latex插件生成pdf目录空白问题
- pdf文件展示盖章及下载
- 电压放大倍数公式运放_运放电路放大倍数的计算
- 五层体系结构特点及其功能
- 套件端口 群晖_群晖NAS安装teamviwer套件,桌面版远程访问群晖设置教程
- 远程监控tomcat运行
- html时间戳转日期
- 数据分析实战之用户画像
- 2013年1月16日 OutOfMemory.CN 进展
- RabbitMQ 详细讲解