zoukankan      html  css  js  c++  java
  • 用Lua编写ACM算法竞赛开灯问题

    有n盏灯,编号为1~n。第一个人把所有灯打开,第二个人按下所有编号为2的倍数的开关(这些灯将被关掉),第三个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共有k个人,问最后有哪些灯开着?输入n和k,输出开着的灯的编号。k<=n<=1000

     1 function func(n, k)
     2     local t = {}     -- 定义空表 表示所有灯都是关闭状态
     3     for i = 1, k do
     4         for j = 1, n do
     5             if j % i == 0 then
     6                t[j] = not t[j]
     7             end
     8         end
     9     end
    10 
    11     for i = 1, #t do
    12         if t[i] then
    13             print(i)
    14         end
    15     end
    16 end
    17 ------------------------------
    18 example:
    19 func(7, 3)   -- 1, 5, 6, 7
  • 相关阅读:
    mysql 行号
    java 异常链
    springsecurity密码加密
    java 四舍五入
    ArrayList的使用及原理
    java 匿名内部类
    java 克隆
    logback的配置
    信号量 Semaphore
    障碍器 CyclicBarrier
  • 原文地址:https://www.cnblogs.com/erdiba/p/12536992.html
Copyright © 2011-2022 走看看