北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 3081|回复: 6

[已解决] 求助,列表中累计取值求和

[复制链接]
发表于 2022-4-24 08:39:57 | 显示全部楼层 |阅读模式
本帖最后由 cares 于 2022-4-25 12:21 PM 编辑



求助:    else -- end 部分,   我不知道如何循环从列表len中取值相加.即,当i=3时   location 不应该= 1+ len[2]   而应该是累计   1+len[2]+len[1]     当i=4时   应该是  1+len[1]+..len[3]

我自己觉得应该是循环,可是没搞定。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2022-4-24 11:21:11 | 显示全部楼层
论坛好冷清啊,唉
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2022-4-24 11:42:04 | 显示全部楼层
lua 不是很熟。不知道有没有现成的函数能够直接数组内求和。

不过你自己写一个很快呀。。你思路都有了。。写一个方法,传入数组和下标,一个循环计算求和,返回计算结果,搞定
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2022-4-24 12:21:51 | 显示全部楼层
function sum(t)
        local total=0
        for k,v in ipairs(t) do
                total=total+v
        end
        return total
end

增加这个function,然后在else后面调用,local location = sum(len)
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2022-4-24 13:09:54 | 显示全部楼层
首先分析诉求
if i=2
then location=len[i-1]

if i=3
then location=len[i-1]+len[i-1-1]

if i=4
then location=len[i-1]+len[i-1-1]+len[i-1-1-1]

看出来了吧,这是一个-1循环

然后再分析前面的实例
1
if i==1其实是初始化过程,完全不用参与到for中
直接定义再开始循环
for i=2,#temp

2
len_i=tonumber(#str/2)
这里的tonumber实际上完全没有发挥作用
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2022-4-24 19:27:14 | 显示全部楼层
creat 发表于 2022-4-24 01:09 PM
首先分析诉求
if i=2
then location=len

明白,谢谢大佬,我继续去改
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2022-4-25 12:23:04 | 显示全部楼层
creat 发表于 2022-4-24 01:09 PM
首先分析诉求
if i=2
then location=len

教主,我来提交作业:

len = {5,5,5,5,5,5,5}
local tt = {}
local location = 1
table.insert (tt,1)
for i=2,#len do
        location = location + tonumber(len[i-1])
        print (location)
end

谢谢。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-4-27 03:28 AM , Processed in 0.009520 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表