Lua 中的常用練習題(求表中的最大值,最小值。)

2021-10-01 06:10:13 字數 3986 閱讀 3796

local arr = 

-- 定義陣列

local max = math.max(unpack(arr))

-- math.max取得引數中最大值;

-- unpack接收乙個陣列(table)引數,預設從下標1開始返回陣列所有元素

print(max)

function maxfunction(arr)

max1 = nul

for k ,v in pairs(arr) do

if(max1==nul) then

max1 = v

endif max1 < v then

max1=v

endend

return max1

endprint( maxfunction(arr))

function   __mi(x,n)

local sum

if n == 1 then

sum=x

else

sum = __mi(x,n-1) * x

endreturn sum

endprint(__mi(2,5))

-- 方法1

function __jiecheng(x)

local i=1

if x < 1 then

return 1

endrepeat i = x * i

x = x - 1

until x == 0

return i

endprint(__jiecheng(4))

-- 方法2

function _jiecheng(n)

local sum

if n == 1 then

sum=1

else

sum =_jiecheng(n-1) * n

endreturn sum

endprint(_jiecheng(4))

a = 5

for i = 1, a, 1 do

for j = 1, a - i, 1 do

io.write(' ')

endfor k = 1, 2 * i - 1, 1 do

io.write(k)

endprint()

end

for a = 1,9 do

local s = ""

for b=1,9 do

if b <= a then

s = s..a.."x"..b.."="..a*b

if a ~= b then

s = s.."\t"

endend

endprint(s)

end

year = io.read()

if(year%4==0 and year%100~=0) then

print("閏年")

else

print("平年")

end

要求使用者輸入兩個整數,判斷第乙個整數是否是第二個整數的倍數。

num1 = io.read()

num2 = io.read()

if(num2%num1 == 0) then

print("ok")

else

print("no")

end

要求使用者輸入乙個年份和乙個月份,判斷(要求使用巢狀的if…else和switch分別判斷一次)該年該月有多少天。

print("請輸入年份")

year = io.read();

print("請輸入月份")

month = io.read();

if(year%4 == 0 and year%100 ~= 0) then

print(year.."是閏年:366天")

local month = tonumber(month)

if(month == 2) then

print(month.."月是28天")

endelse

print(year.."是平年:365天")

local month = tonumber(month)

if(month == 2) then

print(month.."月是29天")

endend

monthmax =

months =

for i,m in ipairs(monthmax)do

local lable = tonumber(month)

if m == lable then

print(lable.."月是31天")

endend

for i,m in ipairs(months)do

local lable = tonumber(month)

if m == lable then

print(lable.."月是30天")

endend

要求使用者輸入乙個學生的分數(1~100),使用switch結構判斷該分數屬於什麼等級(a、b、c、d、f)。

userscore = io.read()

numberscore = tonumber(userscore)

if (numberscore <= 20 and numberscore > 0) then

print("a")

endif (numberscore <= 40 and numberscore > 20) then

print("b")

endif (numberscore <= 60 and numberscore > 40) then

print("c")

endif (numberscore <= 80 and numberscore > 60) then

print("d")

endif (numberscore <= 100 and numberscore > 80) then

print("f")

endif (numberscore <= 0) then

print("會好好輸嗎?")

end

使用while迴圈求1~100以內所有奇數的和。

i = 1;

j = 1;

while(i < 99)

do local num = i + 2

i = num

j = j + i

endprint(j)

--]]

使用while迴圈求式子2+22+222+2222+22222的和。p=p*10+2;

i = 0

j = 0

while(i < 22222)

do i = i * 10 + 2

j = j + i

endprint(j)

請程式設計驗證一下「角谷猜想」:對任意的自然數,若是奇數,就對它乘以3加1;若是偶數就對它除以2;這樣得到乙個新數,再按上述奇數、偶數的計算規則進行計算,一直進行下去,最終將得到1。

userscore = io.read()

numberscore = tonumber(userscore)

while(numberscore ~= 1) do

if(numberscore % 2 == 1) then

numberscore = numberscore * 3 + 1

else

numberscore = numberscore / 2

endprint(numberscore)

end

MySQL中的單錶練習題

部門表 create table dept deptno int primary key,dname varchar 14 部門名稱 loc varchar 13 部門位址 insert into dept values 10,accounting new york insert into dept...

程式設計練習題 矩陣中的路徑

請設計乙個函式,用來判斷在乙個矩陣中是否存在一條包含某字串所有字元的路徑。路徑可以從矩陣中的任意乙個格仔開始,每一步可以在矩陣中向左,向右,向上,向下移動乙個格仔。如果一條路徑經過了矩陣中的某乙個格仔,則該路徑不能再進入該格仔。例如 ab cesf csad ee left begin a b c ...

有關鍊錶的練習題。

剛剛學了線性表,會了一些基本操作,現在來做一些經典面試題來鞏固一下知識。一。列印鍊錶從尾到頭。1 從尾到頭列印單鏈表。普通法 void print slistnode pfirst end pnode 將pnode賦給end。pnode pfirst 將pnode賦成頭結點列印出此時的值,繼續迴圈。...