gpt4 book ai didi

ruby - 使用 Rubys 可枚举模块解决 Fizzbuzz?

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

嘿,我最近接到了 fizzbuzz 任务,我用平常的方式回答了,

if ((i%3==0) || (i.to_s.include?('3'))) && ((i%7==0) || (i.to_s.include?('7')))
p 'Fizzbuzz'
elsif (i%3==0) || (i.to_s.include?('3'))
p 'Fizz'
elsif (i%7==0) || (i.to_s.include?('7'))
p 'Buzz'
else
p i
end

当被要求缩短它时,我尝试使用三元运算符:

p (i%3<1 || i.to_s.include?('3')) ? ((i%7<1 || i.to_s.include?('7')) ? "Fizzbuzz" : "Fizz") : ((i%7<1 || i.to_s.include?('7')) ? "Buzz" : i)

但是当被要求使用可枚举方法(选择、拒绝、收集等)来解决它时,我被难住了......以前有人试过这个吗??

特别提到了 select/collect 方法,所以我猜他有类似的想法(请原谅糟糕的代码)(1..100).选择{|我|我 % 3 == 0 }.collect { “嘶嘶声” }但是我在尝试针对 3 个条件执行此操作并打印出结果(即遍历输出数组)时卡住了:\

最佳答案

现在可能没什么帮助,但我制作了一个 gem (fizzbuzzard),猴子修补 Fixnum 这样所有三的倍数打印为 Fizz,所有的倍数五等等等等。面试官会尊重你使用现有库的知识,而不是毫无意义地重新解决已解决的问题。

从 rubgems 获取 here并找到来源 here .

我最自豪的部分?测试套件。此处转载的输出:

(0h8m|master) [fizzbuzzard] $ rspec
.

Finished in 0 seconds
1 example, FIZZBUZZ failures

关于ruby - 使用 Rubys 可枚举模块解决 Fizzbuzz?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16803093/

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