求最小公倍数(华为机试,Go)

go语言:实现寻找Find Lcm最小公倍数算法(附完整源码) 阅读详情

目录

题目描述

解决方案

代码

代码走读

传送门


题目描述

正整数A和正整数B的最小公倍数是指:能被A和B整除的最小的正整数值。设计一个算法,求A和B的最小公倍数。

输入/输出示例

输入输出说明
5 73535是整除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 main

import (
	"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 := min
	for {
		if current % number1 == 0 && current % number2 == 0 {
			break
		}

		current += min
	}

	fmt.Println(current)
}

代码走读

package main

import (
   "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])

   // 确定最小公倍数范围下限min
   min := MaxNumber(number1, number2)
   max := number1 * number2


   // 遍历current, current每次递增min(即A、B两个数中的最大值)。若current同时满足整除A和B,则跳出循环,此时current为最小公倍数
   current := min
   for {
      if current >= max {
         break
      }

      if current % number1 == 0 && current % number2 == 0 {
         break
      }

      current += min
   }

   fmt.Println(current)
}

传送门

string.Spilt函数icon-default.png?t=M276https://blog.youkuaiyun.com/TCatTime/article/details/100511043

试题链接

Python实现两个数的最小公倍数 最小公倍数(Least Common Multiple,简称LCM),是指能够被两个或多个整数整除的最小正整数。在Python中,我们可以使用算法来计算两个数的最小公倍数。值得注意的是,这个实现方法假设输入的数值都是正整数。这段代码可以适用于任意两个整数,不仅限于示例中的 12 和 18。在上述示例中,我们假设要计算的两个数是 12 和 18。函数使用辗转相除法(欧几里得算法)来计算两个数的最大公约数。函数并传入两个数,得到的结果将存储在变量。的值,我们可以得到最小公倍数。函数来计算它们的最小公倍数。 阅读详情

相关推荐

手把手教你利用qemu搭建银河麒麟V11 arm环境

在Windows环境下,初学者或企业用户常通过VMware、VirtualBox等虚拟机软件安装Ubuntu、Red Hat等Linux系统,这类工具更侧重X86等复杂指令集架构(CISC,常见于Intel、AMD处理器)的虚拟化。而QEMU是一款开源的虚拟机监视器与模拟器,核心优势在于可模拟ARM、MIPS、RISC-V等精简指令集架构(RISC)的处理器并提供虚拟化能力,更适合对虚拟化技术有一定了解的用户。可能是电脑性能问题,安装过程比较慢,需要耐心等待。等操作系统下载完成后,进行安装了。

huanhuanzhou blog 2455

最大公约数 / 最小公倍数 Pyhton / GO

最大公约数 / 最小公倍数 Pyhton / GO 最大公约数(Greatest Common Divisor):指两个或多个整数共有约数中最大的一个 最小公倍数=两数之积/最大公约数 辗转相除法(递归的形式)- Python # 自定义"最大公约数"(辗转相除法-递归法) def gcd(a, b): temp = a % b if temp > 0: return gcd(b, temp) else: return b # 自定义“最小

weixin_45202860的博客 997

期货套利策略(二)

接上一篇期货套利策略,随着对期货套利策略的深入了解,我发现套利策略不是那么好做的。下面将会讲碰到的一些问题。 上一篇文章中没有考虑滑点的问题,这里我们把滑点问题考虑进去。这里先说一些天勤api的买入点,天琴的买入点是当前K线的收盘价。碰到数据传输问题,还有计算等各方面问题,实际情况是无法在当前K线的收盘价买入的。这里我们把这方面问题考虑进去,利用api.wait_update()调到下一个k线数据...

qq_31611005的博客 1712

golang 算法一 数学

1、golang会自动进行四设五入func main(){ var a float32 fmt.Scan(&a) fmt.Printf("%.2f",a) } //输入:1.235 //结果:1.242、火柴游戏,21根火柴,轮流取,每人可取1-4根,不可多取,也不可不取,编程,让一个人赢得比赛。每轮让两个人去火柴的数量为5。3、求圆周率=1-1/3+1/5-1/7+...........

田园园野的博客 5513

实现飞书机器人推送消息到指定群组或者用户

飞书是一个集成了聊天、协作和办公功能的企业级平台,广泛应用于企业内部沟通和协作。飞书机器人(Feishu Bot)是一种强大的工具,允许开发者通过编程接口与飞书进行互动,从而实现自动化消息推送和任务管理。本文将详细介绍如何通过飞书机器人推送消息给指定的人或者群组,帮助您快速上手。

qq_41898196的博客 5865

用OpenNI2获取奥比中光Astra Pro及 Astra Pro SM输出的深度图(win,linux arm64 x64平台)

搞了一个奥比中光Astra Pro,想在windows平台,和linux rk3588 上获取深度信息,之前的驱动下载已经不好用了。

babytiger的专栏 1305

慧通编程第五关

938 最小公倍数的简单方法 #include <iostream> #include <cstdio> using namespace std; int main() { int a, b; cin >> a >> b; for (int i = 1; ; i ++) { if (i%a==0 && i%b==0) { cout << i; break; } } return 0; } 93

中学生信竞 2509

Topas——基于Geant4的放射治疗蒙特卡罗算法模拟工具

本文内容参考Joseph Perl 的线上会议,视频详情可见于,该视频会议内容主要介绍Topas功能、软件架构、工作流程、参数设定、物理模型、具体案例等,对TOPAS的基本入门使用方法以及使用规定作出阐述。

fy方的博客 7604

最小公倍数

最大公约数--欧几里得算法int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); } 最小公倍数,即两个数乘积除以最大公约数,可以理解为其中一个数除以最大公约数,这样两个数的最大公约数就是1,其最小公倍数就是两个数的乘积HDU - 1108  最小公倍数#include&lt;iostream&gt; #inc...

STOP 341

Debezium系列之:使用指定值替代指定字段的值

Debezium系列之:使用指定值替代指定字段的值

zhengzaifeidelushang的博客 306

第0章 《机器人工程师带你入门SLAM》专栏所有文章目录汇总(截止目前115篇文章),方便大家查看阅读

《机器人工程师带你入门SLAM》专栏文章汇总:优快云热销专栏已更新100+篇优质内容,涵盖SLAM技术全栈知识体系。文章分为三大类:1)基础工具与环境配置,包括Ubuntu、Git等必备技能;2)C++编程从入门到进阶,详解变量、类、模板等核心概念;3)SLAM核心库实战,深入解析ROS、Eigen、PCL等关键库的应用。专栏提供从计算机基础到项目实战的系统学习路径,并附代码实例。点击专栏主页可订阅查看全部内容,后续将保持更新。

行知SLAM 1068

求最小公倍数(牛客:华为机试)

//第一种解法 #include<iostream> using namespace std; int getmin(int a,int b)//获取最大公约数 { return a==0?b:getmin(b%a,a); } int main() { int a = 0,b=0; cin >> a>>b; int number=(a*b)/getmin( a, b);//最小公倍数公式:(a*b)/(两者的最大公约数) cout<&l

qq_43038236的博客 229

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

嵌入式面经111题答案汇总(含技术答疑)_嵌入式项目源码分享

正式员工,餐补、报销加班车费、年假、带薪病假、六险一金(全额12%)、年度体检、定期团建、下午茶等等。27 一面,面试八股场景sql算法都ok,反问面评很好29 二面,面试算法sql都ok,自己中间件哪。小米,快手附近,我实习提前结束了,多租了1个月的房,需要转出去,有伙伴最近来附近实习的吗。家在哈尔滨,土木211硕士,手里两个offer,有点纠结怎么选1.哈尔滨锅炉厂,年总包12w,听里师。各位大佬帮忙看看简历,三月已经过完了,春招目前0offer,真的很焦虑 #前端# #金三银四,你有感。

han_xue_feng的博客 613

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

量化私募急招~~!!!《资深C++开发工程师 》 base

如何选择适合公司招聘要求的人,是一件较难的事,光看简历的话,也并不足以评估一个人是否符合我们公司的需。本科同学大多去了外包或者小作坊公司,但 985 硕可以让我选择更好的公司,享受更高的薪资待遇,为我提。楼主腾讯暑期实习投的是后台开发,被csig一面后挂了,后面被pcg捞了,一面没有显示是技术运营,刚刚。入职还有三个月,想找点路子赚点钱, 友友们有什么推荐的公司或者职位吗,仅限北京和天津,技术非技术类的。纯纯刷kpi,其他人材料,机械都问了,最后实在忍不住问了一句,没问是不是因为没有软开岗位了,半天说不。

每天多一点干货 1106

题解 | #2023年安徽大学ACM实验室新生赛 题解报告#

聊一聊腾讯云智和数字马力 HC填的不到1/5, 又有人鸽了,太难了 [笑cry] 大厂年终奖 给点建议哥哥们 24届二本非科班老哥的秋招总结(以防你不想看视频) 签三方前查一下校招黑名单,对你真没啥坏处 点击就送大汇总! 入职5个月后,我想说军工已经不值得留恋 秋招血泪史 帮大家避雷海信集团 女

2301_79125642的博客 1241
上一篇: 求最小公倍数(华为机试,Python)
下一篇: 无重复字符的最长子串(Python,LeetCode)
TCatTime
博客等级 码龄9年 400粉丝 256原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值