以下代码来自ProofWiki (只是稍微修改了一下数字):
有一所学校有25名学生,相应地有25个储物柜,所有这些储物柜一开始都是关闭的。第一个学生打开每个储物柜。第二个学生关闭所有其他的储物柜,从第二个开始。第三个学生从第三个开始,每隔一次更改一个储物柜的状态。也就是说,如果储物柜是打开的,她就关闭它,如果它是关闭的,她就打开它。这同样会继续下去,直到所有25名学生都通过了储物柜。第25个学生完成后,哪些储物柜是打开的,哪些是关闭的?
我已经知道答案都是完美的方块,我理解为什么。我的目标是尝试使用代码来解决这个问题(我对编码比较陌生),但是我不知道哪里出了问题。
代码如下:
for a in range (1,26):
count_factor(a) == 0
def count_factor(a):
for a in range (1,26):
for b in range (1,26):
if b%a == 0:
count_factor(a) += 1
total = 0
for a in range (1,26):
if count_factor(a)%2 == 1:
total = total + 1
print (total)预期输出应仅为10。但是,它显示存在语法错误,并且无法将其赋值给函数调用
count_factor(a) += 1有什么想法吗?
发布于 2019-08-26 00:55:03
语句count_factor(a) += 1没有任何意义。
当您展开+=运算符时,这等同于:
count_factor(a) = count_factor(a) + 1你在给一个函数赋值,这是没有意义的。
https://stackoverflow.com/questions/57647914
复制相似问题