开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 275|回复: 8
打印 上一主题 下一主题
收起左侧

[已解决] 算法问题

 关闭 [复制链接]
结帖率:82% (87/106)
跳转到指定楼层
楼主
发表于 2025-5-17 22:42:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式   河北省秦皇岛市
10精币
请求每次只返回 人数 和总获得的铅笔数量 怎么判断出每个人获得了多少铅笔

1=1 2=10 3=15 4=16 5=18

结果应该是第一个人获得了1个铅笔 第二个人获得了9个 第三个人获得了6 以此推

如果请求不是按+1人返回的结果
1=1 3=10
结果应该是 第一个人1个 第二个人一人4.5


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:87% (39/45)

签到天数: 4 天

沙发
发表于 2025-5-17 22:42:21 | 只看该作者   河北省衡水市
AA.e (150.33 KB, 下载次数: 12)

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:0% (0/2)
板凳
发表于 2025-5-17 22:50:30 | 只看该作者   河南省周口市
啥意思?

补充内容 (2025-5-17 22:51):
1=1 2=10 3=15 4=16 5=18,这是什么意思

补充内容 (2025-5-17 22:52):
这些字我都认识,合在一起我就只能拍脑袋了,属实没看懂

补充内容 (2025-5-17 22:58):
第四个人和第五个人分别获得9个吗?这种算法吗
回复

使用道具 举报

结帖率:82% (87/106)

签到天数: 4 天

地板
 楼主| 发表于 2025-5-17 22:54:40 | 只看该作者   河北省秦皇岛市
萌新来学习 发表于 2025-5-17 22:50
啥意思?

补充内容 (2025-5-17 22:51):

就是当多少个人获取到铅笔的时候的总数量
回复

使用道具 举报

结帖率:87% (39/45)

签到天数: 4 天

地下
发表于 2025-5-17 23:04:53 | 只看该作者   河北省衡水市
九级大风大浪 发表于 2025-5-17 22:54
就是当多少个人获取到铅笔的时候的总数量

- 第1人:1
- 第2人:10-1=9
- 第3人:15-10=5
- 第4人:16-15=1
- 第5人:18-16=2
回复

使用道具 举报

结帖率:0% (0/2)
6
发表于 2025-5-17 23:11:40 | 只看该作者   河南省周口市
第1人:1
- 第2人:10-1=9
- 第3人:15-9=6
- 第4人:16-6=10
- 第5人:18-10=8
这样对吗

补充内容 (2025-5-17 23:13):
如果第三人是得了6个,应该是总数量减前面人获得的数量依次推下去吧,楼上第三人怎么得出5个啊,题目里不是第三人得6个吗

补充内容 (2025-5-17 23:15):
我这算法不对,请忽略,楼上总和是对的

补充内容 (2025-5-17 23:19):
这个结果算法:就是铅笔总数-第一人至到倒数第2个人铅笔计数时的总数量,即可得到最后一个人获得的铅笔数量,倒推题目更直观
回复

使用道具 举报

结帖率:87% (39/45)

签到天数: 4 天

7
发表于 2025-5-17 23:15:02 | 只看该作者   河北省衡水市
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
原始数据文本型  
结果数组整数型0 

子程序名返回值类型公开备 注
__启动窗口_创建完毕  
原始数据 = “1=1 2=10 3=15 4=16 5=18”
计算分配结果 ()
调试输出 (“测试用例1结果:”, 结果数组)
' 测试用例2:非连续数据
结果数组 = {  }
原始数据 = “1=1 3=10”
计算分配结果 ()
调试输出 (“测试用例2结果:”, 结果数组)
子程序名返回值类型公开备 注
取数组上限整数型 
参数名类 型参考可空数组备 注
数组
返回 (取数组成员数 (数组))
子程序名返回值类型公开备 注
计算分配结果  
变量名类 型静态数组备 注
数据列表用户数据0
i整数型 
prev_id整数型 
prev_count小数型 
current_id整数型 
current_count小数型 
' 步骤1:解析原始数据
解析数据 (数据列表)
' 步骤2:按用户ID排序
排序数据 (数据列表)
' 步骤3:初始化结果数组
如果真 (取数组成员数 (数据列表) > 0)
重定义数组 (结果数组, 假, 数据列表 [取数组成员数 (数据列表)].用户ID)

' 步骤4:处理第一个节点之前的用户
如果真 (取数组成员数 (数据列表) > 0 数据列表 [1].用户ID > 1)
prev_id = 0
prev_count = 0
current_id = 数据列表 [1].用户ID
current_count = 数据列表 [1].累计数量
填充间隔 (prev_id, prev_count, current_id, current_count)

' 步骤5:处理中间节点
计次循环首 (取数组成员数 (数据列表) - 1, i)
prev_id = 数据列表 [i].用户ID
prev_count = 数据列表 [i].累计数量
current_id = 数据列表 [i + 1].用户ID
current_count = 数据列表 [i + 1].累计数量
填充间隔 (prev_id, prev_count, current_id, current_count)
计次循环尾 ()
' 步骤6:处理最后一个节点之后的用户
如果真 (取数组成员数 (数据列表) > 0)
prev_id = 数据列表 [取数组成员数 (数据列表)].用户ID
prev_count = 数据列表 [取数组成员数 (数据列表)].累计数量
current_id = 取数组上限 (结果数组) + 1
current_count = prev_count  ' 后续用户不获得新铅笔
填充间隔 (prev_id, prev_count, current_id, current_count)

子程序名返回值类型公开备 注
填充间隔  
参数名类 型参考可空数组备 注
prev_id整数型
prev_count小数型
current_id整数型
current_count小数型
变量名类 型静态数组备 注
间隔整数型 
差值小数型 
每个分配数小数型 
j整数型 
如果真 (current_id ≤ prev_id)
返回 ()  ' 无效区间

间隔 = current_id - prev_id
差值 = current_count - prev_count
如果真 (间隔 > 1)
每个分配数 = 差值 ÷ 间隔
计次循环首 (间隔 - 1, j)
如果真 (prev_id + j ≤ 取数组上限 (结果数组))
结果数组 [prev_id + j] = 每个分配数

计次循环尾 ()

如果真 (current_id ≤ 取数组上限 (结果数组))
结果数组 [current_id] = current_count - prev_count - 每个分配数 � (间隔 - 1)

子程序名返回值类型公开备 注
解析数据  
参数名类 型参考可空数组备 注
数据列表用户数据
变量名类 型静态数组备 注
项数组文本型0
临时数据用户数据 
i整数型 
项数组 = 分割文本 (原始数据, “ ”, )
计次循环首 (取数组成员数 (项数组), i)
如果真 (寻找文本 (项数组 [i], “=”, , ) > 0)
临时数据.用户ID = 到整数 (取文本左边 (项数组 [i], 寻找文本 (项数组 [i], “=”, , ) - 1))
临时数据.累计数量 = 到小数 (取文本右边 (项数组 [i], 取文本长度 (项数组 [i])寻找文本 (项数组 [i], “=”, , )))
加入成员 (数据列表, 临时数据)

计次循环尾 ()
子程序名返回值类型公开备 注
排序数据  
参数名类 型参考可空数组备 注
数据列表用户数据
变量名类 型静态数组备 注
i整数型 
j整数型 
temp用户数据 
' 简单冒泡排序
计次循环首 (取数组成员数 (数据列表) - 1, i)
计次循环首 (取数组成员数 (数据列表) - i, j)
如果真 (数据列表 [j].用户ID > 数据列表 [j + 1].用户ID)
temp = 数据列表 [j]
数据列表 [j] = 数据列表 [j + 1]
数据列表 [j + 1] = temp

计次循环尾 ()
计次循环尾 ()


i支持库列表   支持库注释   
spec特殊功能支持库


开始运行被调试程序
* “测试用例1结果:” | 数组:5{0,9,5,1,2}
* “测试用例2结果:” | 数组:3{0,4,4}
被调试易程序运行完毕

回复

使用道具 举报

结帖率:60% (3/5)

签到天数: 7 天

8
发表于 2025-5-18 06:51:21 | 只看该作者   河南省焦作市
.版本 2

第1人:1
第2人:10-1=9
第3人:15-10=5
第4人:16-15=1
第5人:18-16=2

第一个人1个 第二个人一人4.5
第二个人:(10 - 1) ÷ 2
回复

使用道具 举报

结帖率:100% (20/20)

签到天数: 8 天

9
发表于 2025-5-18 10:08:03 | 只看该作者   浙江省杭州市
第三个人不应该是5个 吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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