You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby中如何生成从n到1的正整数倒序数组?

问题分析与解决方案

你的代码存在几个关键问题:

  • 初始化了reverse_seq数组但未对其进行任何操作
  • 对空数组调用reverse并传入块完全无效,既不会生成元素,也无法利用输入的num参数
  • 最后直接返回空数组,完全不符合需求逻辑

以下是几种简洁且符合要求的实现方式:

方式一:使用downto方法(最直观)

def reverse_seq(num)
  # 先判断num是否大于0,不符合则返回空数组
  return [] if num <= 0
  num.downto(1).to_a
end

num.downto(1)会生成从num递减到1的枚举器,调用to_a即可将其转换为数组。

方式二:利用范围反转

def reverse_seq(num)
  return [] if num <= 0
  (1..num).to_a.reverse
end

先创建1到num的数组,再通过reverse方法反转数组,得到从num到1的结果。

方式三:手动循环构建数组

如果想手动实现遍历逻辑,可以这样写:

def reverse_seq(num)
  return [] if num <= 0
  result = []
  current = num
  while current >= 1
    result << current
    current -= 1
  end
  result
end

通过循环从num开始递减,逐个将数值添加到结果数组中,直到current变为0时停止循环。

内容的提问来源于stack exchange,提问作者v_programistka

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 09:54:24