- 0
✩
0
Как написать такой C# код на Ruby?
using System;
using System.Collections.Generic;
using System.Linq;
namespace cs2 {
class Program {
static void Main(string[] args) {
var i=Fibs().TakeWhile(x=>x < 1000).Where(x=>x % 2==0).Sum();
}
static IEnumerable<long> Fibs() {
long a = 0, b = 1;
while (true) {
yield return b;
b += a;
a = b - a;
}
}
}
}
300
1 ответ:
-
- 1
Что-то никто не отвечает, ответили на стаковерфлоу, публикую здесь ответ:
def fibs return enum_for(:fibs) unless block_given? a = 0 b = 1 while true yield b b += a a = b - a end end fibs #=> #<Enumerable::Enumerator:0x7f030eb37988> fibs.first(20) #=> [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765] fibs.take_while {|x| x < 1000}.select {|x| x%2 == 0} #=> [2, 8, 34, 144, 610] fibs.take_while {|x| x < 1000}.select {|x| x%2 == 0}.inject(:+) => 798