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

Ruby实现2的幂次生成方法求助:输入数字生成0到该数的2的幂

修正Ruby生成2的幂方法

你的代码存在两个核心问题:

  • 参数n是单个数字,不能直接调用数组的map方法
  • 2 ** (0..x)写法错误,你把范围对象当作了指数,逻辑完全偏离需求

生成结果数组的版本

如果需要返回包含所有2的幂的数组,修正后的代码如下:

def powers_of_two(n)
  (0..n).map { |x| 2 ** x }
end

调用powers_of_two(4)会返回 [1, 2, 4, 8, 16],对应示例中的数值结果。

输出示例格式字符串的版本

如果需要直接输出示例里的"2^x = 结果"格式,代码可以改成:

def powers_of_two(n)
  (0..n).each { |x| puts "2^#{x} = #{2 ** x}" }
end

调用powers_of_two(4)会直接打印:

2^0 = 1
2^1 = 2
2^2 = 4
2^3 = 8
2^4 = 16

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 11:33:01