我的解法
def distributeCandies(candies: int, num_people: int):
ans = [0] * num_people
i = 1
while 1:
person = (i % num_people) - 1
ans[person] += i
candies -= i
if (i + i) >= candies:
print("i+1:{} candies:{}".format(i+1, candies))
person = ((i + 1) % num_people) - 1
ans[person] += candies
break
else:
i += 1
return ans
res = distributeCandies(7, 4)
print(res)
最后出来的结果:
i+1:3 candies:4
[1, 2, 4, 0]
答案是错误的, 为什么在 i = 2 的时候还是会进入到 if 的判断里面去, 我已经打印出来了, i+1 = 3 candies=4 但是 if (i+1) >= candies 还是为 True ,为什么呢
附上正确答案
def distributeCandies(candies: int, num_people: int):
ans = [0] * num_people
i = 1
while 1:
person = (i % num_people) - 1
ans[person] += i
candies -= i
i += 1
if i >= candies:
print("i:{} candies:{}".format(i, candies))
person = i % num_people - 1
ans[person] += candies
break
return ans
res = distributeCandies(7, 4)
print(res)