设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2431|回复: 3
打印 上一主题 下一主题

[已经解决] 求个计算方法~~

[复制链接]

Lv5.捕梦者

梦石
0
星屑
39009
在线时间
5716 小时
注册时间
2006-11-10
帖子
6618
跳转到指定楼层
1
发表于 2018-3-13 11:33:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

加入我们,或者,欢迎回来。

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

x
本来觉得很容易计算出来的结果,结果越写越长,花了一个早上最后还是错的,实在没辙了,求大大帮忙

题目: 一数组, size == 5。 内容包含 nil, 0 , 正整数, 负整数 这四种,数值没有规律且有可能数个值相同。  F = [a,b,c,d,e]

想要的结果, 从数组F中获得一个正整数,如果数组里没有正整数,那就得到负整数,如果也没负整数,那就得到0或nil

额外要求(重点): 得到数值的优先度要按数组的顺序排列。 即:F[0]如果是正整数,那就返回它,如果没有,就看后面的F[1]... 如果数组里都没有 正整数,那就再按顺序 看F[0]是不是负整数,是的话返回它,不是继续看F[1]....

求计算方法~~ 可以的话,越短越好...(某菜刀写的方法从707-805,结果又臭又长还是错的 = =....)

Lv5.捕梦者

梦石
0
星屑
33430
在线时间
5108 小时
注册时间
2012-11-19
帖子
4878

开拓者

2
发表于 2018-3-13 11:47:40 | 只看该作者
data = f.find{|n| n && n > 0}
data = f.find{|n| n && n < 0}  if !data
data = f[0] if !data
p data

评分

参与人数 2星屑 +70 +1 收起 理由
RyanBern + 70 认可答案
灯笼菜刀王 + 1 认可答案

查看全部评分

xp vx va mv  va mz 各类型脚本/插件定制
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39009
在线时间
5716 小时
注册时间
2006-11-10
帖子
6618
3
 楼主| 发表于 2018-3-13 11:57:49 | 只看该作者
芯☆淡茹水 发表于 2018-3-13 11:47
data = f.find{|n| n && n > 0}
data = f.find{|n| n && n < 0}  if !data
data = f[0] if !data

感谢大大,又学了个新方法,一个find就省了一串的if...elsif ....

点评

也可以写作一行:data = f.find{|n| n && n > 0} || f.find{|n| n && n < 0} || f[0]  发表于 2018-3-13 12:01
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-13 15:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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