Trong more ruby way of doing project euler #2, một phần của mã làDo something vô hạn nhiều lần với một chỉ số
while((v = fib(i)) < 4_000_000)
s+=v if v%2==0
i+=1
end
Có cách nào để thay đổi i += 1
thành một phong cách lập trình thêm chức năng xây dựng?
Điều tốt nhất tôi có thể nghĩ đến là
Float::MAX.to_i.times do |i|
v = fib(i)
break unless v < 4_000_000
s += v if v%2==0
end
bởi vì bạn không thể gọi .times
vào một số dấu chấm động.
gì 'Float' phải làm gì với nó ở nơi đầu tiên? Đó là tất cả các số nguyên. –
http://stackoverflow.com/questions/6373343/math-infinity-in-ruby-how-do-i-iterate-over-an-infinite-sequence –
@DanielFischer: Vì tôi không thể tìm thấy số nguyên tương đương FLOAT :: MAX. –