📜  拼图 |正面还是反面

📅  最后修改于: 2022-05-13 01:57:05.414000             🧑  作者: Mango

拼图 |正面还是反面

50 个硬币排列在一张桌子上(最初所有正面朝上)。 50人以下列方式从硬币中一一通过:

第一个人来拜访编号为 1、2、3、4、……的硬币。并翻转硬币直到另一面出现(例如,如果它最初是正面,他/她将翻转它直到尾巴出现,反之亦然。)
第二个人来拜访编号为 2、4、6、8……的硬币并翻转硬币。
同样,第三个人来拜访 (3, 6, 9, 12, ……) 并做同样的事情。

任务是找出第 50 个人通过后所有硬币的最终状态,即硬币是正面朝上还是反面朝上?

解决方案:诀窍是确定人们访问硬币的次数是偶数还是奇数。
注意硬币号码。

只有完美的正方形有奇数。的因素,并且每个其他数字都有偶数个因素。

对于所有具有奇数个因子的硬币将朝上,对于所有具有偶数个因子的硬币。的因素将正面朝上。

因此,硬币编号为 1、4、9、16、25……。将有尾巴,而 2、3、5、6、7、10、11,... 的头朝上。

from math import floor, sqrt
def getTails(n):
    return floor(sqrt(n))
  
if __name__ == "__main__":
    n = 50
    print(getTails(50))
输出:
7