gpt4 book ai didi

Ruby:是否可以使用单行函数使用阶梯函数生成以下数组:[1, 10, 100, 1_000, 10_000, 100_000, 1_000_000]

转载 作者:数据小太阳 更新时间:2023-10-29 08:17:31 25 4
gpt4 key购买 nike

我想到了几种不同的方法来生成以下数组:[1, 10, 100, 1_000, 10_000, 100_000, 1_000_000]

似乎可以使用 step 函数以优雅的方式生成此数组,但我无法弄清楚。将第二个参数传递给 step 函数并表示您希望最后一个值乘以 10:

0.step(1_000_000, ???).to_a

以下是我到目前为止提出的解决方案:

我不太喜欢 inject 解决方案,因为我更愿意将 1_000_000 指定为上限:

(0..6).inject([]) { |memo, number| memo << 10**number; memo }

这是我提出的丑陋的步骤解决方案:

result = []
0.step(6) {|number| result << 10 ** number}
result

while 循环感觉也不对,但至少它让我指定了 upper_bound(而不是 Math.log10(upper_bound)):

result = [1]
while result.last < 1_000_000
result << result.last * 10
end
result

感谢您的帮助。

最佳答案

您有很多解决方案。以这种方式使用 map 怎么样?

7.times.map { |i| 10**i }
#=> [1, 10, 100, 1000, 10000, 100000, 1000000]

如果你想设置上限,你总是可以这样

1_000_000.to_s.size.times.map { |i| 10**i }
#=> [1, 10, 100, 1000, 10000, 100000, 1000000]

关于Ruby:是否可以使用单行函数使用阶梯函数生成以下数组:[1, 10, 100, 1_000, 10_000, 100_000, 1_000_000],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17823306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com