首先,函数 solution 定义了两个参数 n 和 k ,分别决定数组的长度和起始倍数。 比如, n = 3 表示我们要生成一个包含 3 个数的数组, k = 1 就是从 1 开始找倍数。 然后,通过一个空数组 elements 来存储找到的倍数。 从 current = k 开始,也就是起始倍数。 接着,有一个 while 循环,只要数组长度小于 n ,就会一直执行。 在循环中,判断当前数是否在数组中,如果不在,就添加进去。 比如,第一次循环, current = k ,如果不在数组中,就添加。 每次循环结束,都更新 current 为下一个 k 的倍数。 这样不断找到新的倍数添加到数组。 最后,用 sum 函数计算数组中所有元素的和,返回这个和。
在 if name == 'main': 部分,就是对函数进行调用和结果的检验。 比如 print(solution(n=3, k=1) == 6) ,当 n = 3 且 k = 1 时,找到的倍数是 1、2、3,它们的和正好是 6 ,所以打印 True 。
第 1 行,定义了一个叫 solution 的函数,它有两个参数 n 和 k ,这俩分别决定数组长度和起始倍数。 第 3 行,先弄了个空数组 elements ,准备存符合条件的数。 第 6 行,把 current 设成 k ,从 k 开始找倍数。 第 7 行,有个 while 循环,只要 elements 数组长度小于 n ,就一直干活。 第 9 行,如果当前的数 current 不在 elements 数组里,那就执行下面的。 第 10 行,把不在数组里的 current 加进 elements 数组。 第 12 行,把 current 变成下一个 k 的倍数。 第 15 行,用 sum 函数算出 elements 数组里所有数的和,存到 result 里。 第 17 行,最后把算好的和 result 给返回了。
在 if name == 'main': 这部分,分别调用了 solution 函数,然后打印出函数返回值跟预期结果是不是一样。
比如说,在 print(solution(n=3, k=1) == 6) 这里,当 n = 3 、 k = 1 时,依次找到 1 的倍数 1、2、3 放进数组,数组和是 6,跟预期一样,所以就打印 True 。