abioqian0,My solution
任务1:可划分对
任务
您将获得尺寸$n
和divisor $k
的整数@list
列表。
编写一个脚本以找出满足以下规则的给定列表中的对计数。
当且仅当
时,这对(i,j)才有资格0 <= i < j < len(list)
-
list[i] + list[j]
被k
。
我的解决方案
这似乎相对直接。由于列表是Python中的一个保留单词,因此我将nums
用于Python版本。为此,我从matches
的值开始为零。我使用POP函数从输入中取出最后一个数字,然后将其存储为k
。
对于i
迭代器,我从零开始,在第二个最后一个数字上结束。对于j
迭代器,我从i+1
开始,然后在最后一个位置结束。如果相关位置的数字除以k
,我会增加matches
。然后打印结果。
我知道有些聪明的鸡蛋将使用地图,这可能会更快一些。在这些挑战的情况下,有时我会使代码更容易理解超速。
例子
$ ./ch-1.py 4 5 1 6 2
2
$ ./ch-1.py 1 2 3 4 2
2
$ ./ch-1.py 1 3 4 5 3
2
$ ./ch-1.py 5 1 2 3 4
2
$ ./ch-1.py 7 2 4 5 4
1
任务2:总零
任务
您有两个正整数$x
和$y
。
编写一个脚本以找出使零零的操作数量。每个操作都是由以下组成的:
-
$x = $x - $y
如果$x >= $y
-
$y = $y - $x
如果$y >= $x
(使用$x
的原始值)
我的解决方案
这一挑战的最困难部分是了解所需的内容。特别是“使用$ x的原始值”。我认为这是指提供的$ x的价值,但是很明显,在此特定迭代中,这意味着$ x。
以此为止,代码变得直接。我有一个名为count
的值,从0开始,一个循环一直持续到x
和y
为0。
对于每次迭代,我将一个添加到count
值中。如果x
更大,我会服用y
,同样,如果y
是Grexater,则我将x
从中取出。如果x
和y
相同,我将它们都设置为零,因为我们知道从每个值中获取另一个值会导致此。
例子
$ ./ch-2.py 5 4
5
$ ./ch-2.py 4 6
3
$ ./ch-2.py 2 5
4
$ ./ch-2.py 3 1
3
$ ./ch-2.py 7 4
5