cari

Rumah  >  Soal Jawab  >  teks badan

java - 代码实现逻辑

现在有100个灯泡,每个灯泡都是关着的,第一趟把所有的灯泡灯泡打开,第二趟把偶数位的灯泡制反,第三趟让第3,6,9....的灯泡制反.......第100趟让第100个灯泡制反,问经过一百趟以后有多少灯泡亮着。

代码如何实现:

PHP中文网PHP中文网2818 hari yang lalu303

membalas semua(2)saya akan balas

  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:15:49

    Tambahan kepada apa yang @hsfzxjy katakan

    燈泡只要有一個因數就會被開關一次
    • Kerana apabila suis i dilakukan, gandaan i lampu akan ditukar

    • Dengan kata lain, mentol lampu dengan faktor i akan dihidupkan dan dimatikan dalam perjalanan ini

    Ia boleh disimpulkan daripada perkara di atas:

    燈泡有奇數個因數最後的結果會是亮著的 (開關奇數次, 會是亮的)

    boleh diringkaskan sebagai:

    完全平方數的燈泡會亮著 (因為只有完全平方數有奇數個相異因數, 其他都會有兩兩成對的相異因數)

    Jika anda ingin mensimulasikan sepenuhnya situasi ini, berikut ialah kod Python:

    lamps = [ False for i in range(100) ]
    
    # print('starts', lamps)
    
    for i in range(1, len(lamps)+1):
        for idx, lamp in enumerate(lamps):
            if (idx + 1) % i == 0:
                lamps[idx] = not lamp
        # print(i, lamps)
    
    print(lamps.count(True))

    Tetapi berdasarkan kesimpulan di atas, anda hanya perlu tahu berapa banyak nombor kuasa dua sempurna yang terdapat dalam bilangan mentol lampu:

    i = 1
    while i**2 <= 100:
        i += 1
    
    print(i-1)

    Soalan yang saya jawab: Python-QA

    balas
    0
  • 黄舟

    黄舟2017-04-18 09:15:49

    Semua nombor kuasa dua sempurna menyala

    balas
    0
  • Batalbalas