用Lua 编写找出两个数的最大公约数,要怎么编写
答案:3 悬赏:70 手机版
解决时间 2021-03-30 21:04
- 提问者网友:几叶到寒
- 2021-03-30 12:49
用Lua 编写找出两个数的最大公约数,要怎么编写
最佳答案
- 五星知识达人网友:不想翻身的咸鱼
- 2021-03-30 13:46
function Getnum(number1,number2)
local intTemp=1;
if number2 < number1 then
intTemp=number2;
number2=number1;
number1=intTemp;
end
while(number1~=0) do
intTemp =number2 % number1;
number2=number1;
number1=intTemp;
end
return number2;
end
print("enter one number :");
m=io.read("*number1");
print("enter onther number :");
b=io.read("*number2");
print("number is :");
print(Getnum(m,b));追问我是新手。。。 可以给个注释么 (┬_┬) 有的地方看不大明白追答function Getnum(number1,number2)
local intTemp=1;
--取两个数中最大的数字
if number2 < number1 then
intTemp=number2;
number2=number1;
number1=intTemp;
--当然LUA 可以这么做:
-- number2:number2=number2:number2
end
--用数学的辗转相除取最大公约数
--这个如果不知道,可以去网上搜,我就不详细说了
while(number1~=0) do
intTemp =number2 % number1;
number2=number1;
number1=intTemp;
end
return number2;
end
print("enter one number :");
--输入一个数字
m=io.read("*number1");
print("enter onther number :");
--输入一个数字
b=io.read("*number2");
print("number is :");
--调用function Getnum(number1,number2),输出公约数
print(Getnum(m,b));
--PS:我也是一个刚刚学的新手。
--如果你感觉还是看不懂,我认为你还是看看基础的LUA语法很简单的算法知识方面的
local intTemp=1;
if number2 < number1 then
intTemp=number2;
number2=number1;
number1=intTemp;
end
while(number1~=0) do
intTemp =number2 % number1;
number2=number1;
number1=intTemp;
end
return number2;
end
print("enter one number :");
m=io.read("*number1");
print("enter onther number :");
b=io.read("*number2");
print("number is :");
print(Getnum(m,b));追问我是新手。。。 可以给个注释么 (┬_┬) 有的地方看不大明白追答function Getnum(number1,number2)
local intTemp=1;
--取两个数中最大的数字
if number2 < number1 then
intTemp=number2;
number2=number1;
number1=intTemp;
--当然LUA 可以这么做:
-- number2:number2=number2:number2
end
--用数学的辗转相除取最大公约数
--这个如果不知道,可以去网上搜,我就不详细说了
while(number1~=0) do
intTemp =number2 % number1;
number2=number1;
number1=intTemp;
end
return number2;
end
print("enter one number :");
--输入一个数字
m=io.read("*number1");
print("enter onther number :");
--输入一个数字
b=io.read("*number2");
print("number is :");
--调用function Getnum(number1,number2),输出公约数
print(Getnum(m,b));
--PS:我也是一个刚刚学的新手。
--如果你感觉还是看不懂,我认为你还是看看基础的LUA语法很简单的算法知识方面的
全部回答
- 1楼网友:鱼芗
- 2021-03-30 16:10
用欧几里德辗转相除法吧。拿个c或者其他的程序,改写一下就可以了。
- 2楼网友:洎扰庸人
- 2021-03-30 15:11
这个吗,做不到吧。除非你一个一个地实验……
===========================
二元运算符:+ - * / ^ (加减乘除幂)
一元运算符:- (负值)
这些运算符的操作数都是实数。
从高到低的顺序:
^
not - (unary)
* /
+ -
..
< > <= >= ~= ==
and
or
以上=============
===========================
二元运算符:+ - * / ^ (加减乘除幂)
一元运算符:- (负值)
这些运算符的操作数都是实数。
从高到低的顺序:
^
not - (unary)
* /
+ -
..
< > <= >= ~= ==
and
or
以上=============
参考资料:Lua程序设计.chm
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯