篮之新喜 发表于 2023-8-14 12:19:28

《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]
查看完整版本: 《Lua程序设计第四版》 第一部分自做练习题答案