华为od德科面试数据算法解析 2022-3-18 最小公倍数

个人寄语:


准备面试华为外包德科,记录一下一些面试题;
牛客网代码提交的坑,可以看一下下面的第一道题,ide本地编译通过,牛客网死活不通过,提交代码提示:返回非0。原因分析
  查询得知,结果非零的意思的代码退出的时候不是以正常的0退出的,而是非0状态,也就是代码出错了百思不得其解,到底为什么?平常写函数的时候,遇到特定条件,直接return返回,那return后面的代码将不会被执行,看到有一个C++代码网友反馈说return会被牛客网shell提交框替换成print,意思是会给你重新编排一次。这时候return就会出问题,return后面的代码会继续执行。
所以个人建议写代码不要写方法,直接写在main方法内部就行了。
 

题目:

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

输入描述:

输入两个正整数A和B。

输出描述:

输出A和B的最小公倍数。

代码解析:

A, B = map(int, input().split())
T = 1  # 初始1便于不影响乘数结果
for i in range(2, min(A, B) + 1):  # 只需遍历到最小的一个数
    while A % i == 0 and B % i == 0:  # 逐一找公共除数
        T = T * i  # 每找到一个公共除数就累乘
        A = A // i
        B = B // i
print(T * A * B) 

猜你喜欢

转载自blog.csdn.net/qq_38735017/article/details/125547667