目录

题目描述

解决方案

代码

代码走读

传送门


题目描述

正整数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)相关推荐

  1. 华为机试第十五题:HJ15 求int型正整数在内存中存储时1的个数

    华为机试第十五题:HJ15 求int型正整数在内存中存储时1的个数 一.网址链接 二.题目描述 ①描述 ②输入描述 ③输出描述 ④示例一 ⑤示例二 三.代码实现 ①Java代码实现 ②C++代码实现 ...

  2. 华为机试-求int型数据在内存中存储时1的个数

    问题描述 输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数. 输入描述: 输入一个整数(int类型) 输出描述: 这个数转换成2进制后,输出1的个数 示例 示例1 输入 5 输出 ...

  3. 【强烈推荐收藏】坚持3个月爆肝华为机试108题C++全解(适合新手入门,就业必刷套题)

    作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 前言 金九银十,金三银四.当前正处于校招.社招的火热期,之前就想为正在筹备就业的同学们准备刷题宝 ...

  4. Java算法:华为机试算法(下),华为算法Java版,牛客网华为算法73~108题

    接上篇:Java算法:华为机试算法(中),华为算法Java版,牛客网华为算法55~72题   HJ73 计算日期到天数转换 计算日期到天数转换 题目描述 根据输入的日期,计算是这一年的第几天.. 测试 ...

  5. 华为机试108题(C 语言解答)

    Nowcoder题库链接:华为机试 HJ1 字符串最后一个单词的长度(字符串) 输入:hello nowcoder输出:8说明: 最后一个单词为nowcoder,长度为8 示例代码: HJ1.c #i ...

  6. 华为机试-字符串子序列II

    华为机试-字符串子序列II 1.思路 2.代码 1.思路 理解这个抽象题目,其实就是一个求最长子序列的题目.求最长子序列我们一般使用动态规划来做. 与以往不同的是,我们需要倒序求最长子序列,这样可以求 ...

  7. 【华为机试真题Java】从入门到入职-真题列表导读

    写在前面 本专栏有100+道题(持续更新中),都是往期的HW机试真题,根据过往同学的经验基本都会考到原题.大家有什么不懂的都可以留言. 华为机试有三道题目,第一道和第二道属于简单或中等题,分值为100 ...

  8. 牛客在线编程-华为机试-中等

    牛客在线编程题目-华为机试-中等 题号 题目 知识点 难度 通过率 HJ16 购物单 动态规划 中等 21.21% HJ17 坐标移动 字符串 中等 24.79% HJ20 密码验证合格程序 数组 字 ...

  9. 华为机试—介绍、剖析、建议

    一.华为机试介绍 1.大致介绍 时间:120分钟 环境:Visual Studio(去年是vs2005).Visual C++.VC 6.0.Eclipse(Java) 题量:共3题 初级题--60分 ...

  10. 华为机试python编程题_牛客网华为机试题之Python解法

    牛客网华为机试题之Python解法 第1题 字符串最后一个单词的长度 a = input().split(" ") print(len(a[-1])) 第2题 计算字符个数 a = ...

最新文章

  1. iOS手机 相册 相机(Picker Write)
  2. 无人驾驶运动学模型——线性时变模型预测控制的思路推演过程_百叶书的博客-CSDN博客_线性时变模型预测控制 转
  3. linux c++编写访问mysql程序,访问数据库出错,解决方法
  4. 【新功能】MaxCompoute禁止Full Scan功能开放
  5. 学会用各种方式备份MySQL数据库
  6. TensorFlow 2.0不好用?会了是“真香”!
  7. 【spring boot】url中传递session id
  8. 素数对(信息学奥赛一本通-T1403)
  9. 全国哀悼日网站页面变成灰色的filter方法
  10. LabVIEW编程LabVIEW开发Memmert oven温箱例程与相关资料
  11. Vscode latex插件生成pdf目录空白问题
  12. pdf文件展示盖章及下载
  13. 电压放大倍数公式运放_运放电路放大倍数的计算
  14. 五层体系结构特点及其功能
  15. 套件端口 群晖_群晖NAS安装teamviwer套件,桌面版远程访问群晖设置教程
  16. 远程监控tomcat运行
  17. html时间戳转日期
  18. 数据分析实战之用户画像
  19. 2013年1月16日 OutOfMemory.CN 进展
  20. RabbitMQ 详细讲解

热门文章

  1. Splay Tree
  2. 需要给变量赋缺省值吗?
  3. Android Binder机制学习总结(二)-Driver部分
  4. latex中插入两张子图片
  5. MATLAB新手简明使用教程(七)——使用matlab建立多项式以及求导,商求导乘积求导等——新手来看,保证看懂。
  6. 汽车网络安全标准UN Regulation No.155和No.156汇总介绍
  7. 人工智能数学课高等数学线性微积分数学教程笔记(1. 数学内容概述)
  8. 排行前50的编程语言
  9. 总结清楚浮动的几种方法
  10. Linux 计划任务