需要加1到100的数字,如何编写循环来完成操作?

时间:2014-02-10 04:27:19

标签: lua corona

我正在从一本书中学习Lua,这是我坚持的确切问题:

  

鉴于您需要将数字1加到100,请编写一个循环以完成操作。

我尝试了各种各样的事情,但我最近的尝试是:

n = 1
while (n < 100) do
    n = n + 1
    print (n)
end 

5 个答案:

答案 0 :(得分:6)

如前所述,您至少需要两个变量:一个用于保存sum,另一个用于计数到100。

固定步骤计算最好与for循环相关。

local sum = 0
for i = 1, 100 do
  sum = sum + i
end
print(sum)

P.S。问题在哪里?不仅要添加损坏的代码,还要添加一些关于它有什么问题的话。

答案 1 :(得分:4)

看起来你需要做这样的事情:

local n = 1
local sum = 0
while (n <= 100) do
  sum = sum + n
  n = n + 1
end
print(sum)

如果将总和和计数器保存在单独的变量中,这应该会有所帮助。

答案 2 :(得分:1)

你需要另一个变量来保存总和:) 我相信这应该做到:

i=0
n=0
while i <= 100 do
n = i + n
i = i + 1
end
print(n)

答案 3 :(得分:0)

变量在首次分配后可见。因此,您需要在循环外部声明的一个变量来保存在循环内更新的总和,如下所示:

n = 0
sum = 0
while (n < 100) do
    n = n + 1 -- n variable output is 1,2,3,4,5,...100
    sum = sum + n -- sum variable remembers its value from previous iteration
    print (sum)
end

当你执行sum = sum + n时,解释器获取sum的当前值,将n加到它上,并将结果放入sum中。在下一次迭代中,sum仍具有最近的值。比较,如果你已经完成了

while (n < 100) do
    n = n + 1 -- n variable output is 1,2,3,4,5,...100
    local sum = sum + n -- sum is "new" at every iteration so fails
    print (sum)
end

此sum变量是本地循环,因此每次循环时,都会创建一个新的总和。唯一的问题是,

local sum = sum + n 

该语句试图获取“sum”的值并将其添加到n,但是在该行上创建了sum,因此它还不存在,因此解释器将抛出有关尝试对全局“sum”进行算术的错误(右侧出现的总和对编译器不了解,因此它认为它是全局的,因为它还没有创建本地求和)。

答案 4 :(得分:0)

之前的所有答案都忽略了可以使用单个等式计算总和;

假设最大数字是“N”

从1到N的整数之和是; (N x(N + 1))/ 2