lua 函式練習

2022-03-12 04:36:16 字數 3782 閱讀 3523

1

--邏輯表示式23

--1+2+3+...+n

4function

fun1(n)

5local sum = 0

6for i=1,n do

7 sum = sum +i

8end

9return

sum10

end11

12--

計算奇數和

13function

fun2(n)

14local sum = 0

15for i=1,n,2

do16 sum = sum +i

17end

18return

sum19

end20

21--

計算偶數和

22function

fun3(n)

23local sum = 0

24for i=2,n,2

do25 sum = sum +i

26end

27return

sum28

end29

30--

計算n!

31function

fun4(n)

32local sum = 1

33for i=1,n do

34 sum = sum *i

35end

36return

sum37

end38

39--

計算1+2!+3!+...+n!

40function

fun5(n)

41local sum,t=0,1

42for i=1,n do

43 t = 1

44for j=1,i do

45 t = t *j

46end

47 sum = sum +t

48end

49return

sum50

end51

52--

計算 1+ 1/1! +1/2! +1/3! + ...+1/n!

53function

fun6(n)

54local sum=1

55for i=1,n do

56 sum = sum + 1/fun4(i)

57end

58return

sum59

end60

61--

判斷n是否為素數(質數)

62function

fun7(n)

63io.write

(n)64

local t = math.sqrt

(n)65

for i=2,t do

66if n%i==0

then

67return

false

68end

69end

70return

true

71end

7273

--1000以內的水仙花數 如 153 = 1^3 + 5^3 + 3^3

74function

fun8()

75local sum = 0

76local i,j,k=0

77for num=101,999

do78 i = math.floor(num/100

)79 j = math.floor(num%100/10

)80 k = num%10

81if num == i^3 + j^3 + k^3

then

82print

(num)

83end

84end

85end

8687 table_str = '

0123456789abcdefghijklmnopqrstuvwxyz'88

--將10進製數轉換為二進位制數

89function

fun9( n )

90local ys = n % 2

91 n = math.floor(n/2)92

if n~=0

then

93fun9(n)

94end

95io.write(string.sub(table_str,ys+1,ys+1

))96

end97

--將10進製數轉換為八進位制數

98function

fun10( n )

99local ys = n % 8

100 n = math.floor(n/8

)101

if n~=0

then

102fun10(n)

103end

104io.write(string.sub(table_str,ys+1,ys+1

))105

end106

107--

將10進製數轉換為十六進製制數

108function

fun11( n )

109local ys = n % 16

110 n = math.floor(n/16

)111

if n~=0

then

112fun11(n)

113end

114io.write(string.sub(table_str,ys+1,ys+1

))115

end116

117--

將10進製數轉換為n進製數

118function

fun12( n ,n)

119local ys = n %n

120 n = math.floor(n/n)

121if n~=0

then

122fun12(n,n)

123end

124io.write(string.sub(table_str,ys+1,ys+1

))125

end126

127128

function

main( )

129print(fun1(100

))130

print(fun2(10

))131

print(fun3(10

))132

print(fun4(10

))133

print(fun5(4))--

1+2+6+24

134print(fun6(20

))135

print(fun7(20) and

'是素數!'or

'不是素數')

136print(fun7(13) and

'是素數!'or

'不是素數')

137 fun8() --

水仙花138 fun9(100);print('')--

轉換為二進位制

139 fun10(100);print('')--

轉換為八進位制

140 fun11(100);print('')--

轉換為十六進製制

141 fun12(100,36);print('')--

轉換為36進製

142end

143144 main()

Lua 函式 函式

在lua中,函式是一種對語句和表示式進行抽象的主要機制。函式既可以完成某項特定的任務,也可以只做一些計算並返回結果。lua具有一項非常於總不同的特徵,允許函式返回多個結果 s,e string.find hello lua users lua print s,e 7 9 以lua編寫的函式同樣可以返...

Lua基礎學習 Lua函式

函式主要用途 1 是作為呼叫語句使用。2 作為賦值語句的表示式使用。語法 區域性 全域性 function fun name 引數列表 函式體endfunction 定義函式關鍵字注意 1 在使用 lua 函式 變數時一定要先定義函式 變數 2 lua 函式不支援引數預設值,可以使用 or 解決。如...

lua學習 lua函式理解

詞法定界指 巢狀的函式可以訪問他外部函式中的變數。第一類值指 可以被存放在變數中,也可以存放在表中,可以作為函式的引數,還可以作為函式的返回值。的值function foo x return 2 x end這段 實際上就等效於 foo function x return 2 x end所以實際上lu...