以此为契机,监督一下自己记录学习过程以及学习下mark编写
华为一面手撕代码题
题目描述:
某公司需要派遣员工去国外做项目,x国和y国分别需要cntx名和cnty名员工。
总经理是这样派遣员工的:每个员工有个员工号(1,2,3…)。派遣员工总是派遣前k个员工,也就派遣1到k员工去国外。但是编号倍数为x的不想去x国,编号倍数为y的不想去y国。总经理想知道最少派遣前多少名员工可以满足x国和y国需求(即找到最小k,同时满足x国和y国)
解答要求
时间1000ms,内存100MB
输入
四个正数cntx,cnty,x,y(1<=cntx,cnty<10 9,cntx+cnty<=109,2<=x<=y<=30000,q且x和y一定是质数)
输出
满足条件的最小k
样例
输入
3 1 2 3
输出
5
def count_min_k(cntx,cnty,x,y):
count=0
x1=0
y1=0
while x1!=cntx or y1!=cnty:
count += 1
#count不是2的倍数
if count%x and x1<cntx:
x1+=1
#count不是3的倍数
elif count%y and y1<cnty:
y1+=1
return count
# 按间距中的绿色按钮以运行脚本。
if __name__ == '__main__':
cntx=3
cnty=1
x=2
y=3
print(count_min_k(cntx,cnty,x,y))