用Lua編寫ACM演算法競賽開燈問題

2021-09-16 11:56:59 字數 516 閱讀 5094

有n盞燈,編號為1~n。第乙個人把所有燈開啟,第二個人按下所有編號為2的倍數的開關(這些燈將被關掉),第三個人按下所有編號為3的倍數的開關(其中關掉的燈將被開啟,開著的燈將被關閉),依此類推。一共有k個人,問最後有哪些燈開著?輸入n和k,輸出開著的燈的編號。k<=n<=1000。

function func(n, k)

local t = {} -- 定義空表 表示所有燈都是關閉狀態

for i = 1, k do

for j = 1, n do

if j % i == 0 then

t[j] = not t[j]

endend

endfor i = 1, #t do

if t[i] then

print(i)

endend

end------------------------------

example:

func(7, 3) -- 1, 5, 6, 7

演算法競賽 開燈問題 C

有n盞燈,編號為1 n。第1個人把所有燈開啟,第2個人按下所有編號為2的倍數的開關 這些燈將被關掉 第2個人按下所有的編號為3的倍數的開關 其中關掉的燈將被開啟,開著的燈將被關閉 以此類推。一共有k個人,問最後有哪些燈開著?輸入n和k,輸出開著的燈編號。k n 1000。樣例輸入 7 3 樣例輸出 ...

Lua 編寫冒泡演算法

近期使用lua做熱更新的公司越來越多。為了跟上時代的腳步。熟練使用lua。也為了重溫好久不寫的演算法 冒泡演算法 bubble sort 時間複雜度 o n 2 演算法描述 比較相鄰的元素。如第乙個比第二個大,就相互交換 對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,這樣在最後的元素應...

演算法競賽,第三章,開燈問題

開燈問題 描述 有 n 盞燈,編號為 1 n,第 1 個人把所有燈開啟,第 2 個人按下所有編號為 2 的倍數的開關 這些燈將被關掉 第 3 個人按下所有編號為 3 的倍數的開關 其中關掉的燈將被開啟,開著的燈將被關閉 依此類推。一共有 k 個人,問最後有哪些燈開著?輸入 n 和 k,輸出開著的燈編...