《Lua程序设计第四版》 第一部分自做练习题答案
Lua程序设计第四版第一部分语言基础自做练习题答案,带⭐为重点。1.1
输入负数,程序会死循环,修改如下
-- 定义一个计算阶乘的函数
function fact(n)
if n <= 0 then
return 1
else
return n * fact(n - 1)
end
end
print("enter a number")
a = io.read("*n")
while a < 0 do
print("number is negative, enter a number")
a = io.read("*n")
end
print(fact(a))2.1
修改打印棋盘函数,调用操作系统函数,首次打印时提前退出
lua -l lib12.2 ⭐
全排列问题,胡凡算法笔记第115页。需要一个额外的表来记录状态。
print("use dofile")
dofile("1.1.lua")2.0调用IsPlaceOK的次数15720,2.2调用IsPlaceOK的次数40320
3.1
--a = true
a = false
--a = 1
--a = "true"
print(a == true or a == false)3.2
print(0xFFFFFFFFFFFFFFFF) -- -1print(0x8000000000000000) -- 最小的负整数print(0x7FFFFFFFFFFFFFFF)print(0x7FFFFFFFFFFFFFFF * 2) -- 回环,对最高位取舍,等价于print(0xFFFFFFFFFFFFFFFE)print(0x8000000000000000 * 2) -- 回环,对最高位取舍,等价于print(0x0000000000000000)-- math.maxinteger除首位外全1,相乘后得到除最后一位和首部外,中间全0,超过符号位以外的部分被抛弃,其余全为0,最后只剩最后一位的1,所以结果为1。-- math.mininteger除首位外全0,超出符号位以外的数值均被抛弃,其余全为0,所以结果为0。--[[二进制乘法要求满二进一原则"_"符号为舍弃高位求解:0x7FFFFFFFFFFFFFFF * 2 01111111
页:
[1]