有沒有簡單的方法來確定一年是閏年?簡單的方法來確定紅寶石閏年?
21
A
回答
49
5
試試這個:
is_leap_year = year % 4 == 0 && year % 100 != 0 || year % 400 == 0
7
的理解:
def leap_year?(year)
if year % 4 == 0
if year % 100 == 0
if yearVar % 400 == 0
return true
end
return false
end
return true
end
false
end
這可以寫成:
def leap_year?(year)
(year % 4 == 0) && !(year % 100 == 0) || (year % 400 == 0)
end
2
def leap_year?(num)
if num%4 == 0 && num%100 != 0
true
elsif num%400 == 0
true
elsif num%4 == 0 && num%100 == 0 && num%400 != 0
false
elsif num%4 != 0
false
end
end
puts leap_year?(2000)
3
這裏是我這問同樣的問題exercism.io問題的答案。明確告訴您忽略任何標準庫函數,這些函數可能會將其作爲練習的一部分來實現。
class Year
attr_reader :year
def initialize(year)
@year = year
end
def leap?
if @year.modulo(4).zero?
return true unless @year.modulo(100).zero? and not @year.modulo(400).zero?
end
false
end
end
+0
注意我說的是http://exercism.io,它要求你自己實現邏輯作爲編碼練習。 – MattC 2013-11-28 01:38:59
0
這其中需要一個範圍:
(starting..ending).each do |year|
next if year % 4 != 0
next if year % 100 == 0 && year % 400 != 0
puts year
end
來源:克里斯·派恩
0
學習計劃使用最少的費用比較,你可以這樣做:
- 首版/更長版本
def leap_year?(year)
# check first if year is divisible by 400
return true if year % 400 == 0
year % 4 == 0 && year % 100 != 0
end
- 較短的版本
我們可以通過短路或(||
)做相同的檢查:
def leap_year?(year)
year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)
end
相關問題
- 1. 簡單的紅寶石克里斯鬆閏年
- 2. 簡單的拼寫檢查方法/寶石紅寶石?
- 3. 紅寶石 - 確定方法的起源?
- 4. 簡單的方法來分發紅寶石腳本
- 5. 簡單的方法來理解從紅寶石塊返回
- 6. 紅寶石方法定義
- 7. 確定閏年
- 8. 紅寶石簡單替換
- 9. 簡單解析紅寶石
- 10. 紅寶石``**方法
- 11. 紅寶石:方法
- 12. 閏年方法
- 13. 這句法確定的紅寶石1.8.7
- 14. 紅寶石枚舉「單」的方法
- 15. 未定義的方法(NoMethodError)紅寶石
- 16. 簡單的紅寶石,除非方法錯誤,ROR
- 17. 簡單的方法來反轉數組元素的極性紅寶石
- 18. 簡單的紅寶石對象順序
- 19. 簡單的紅寶石程序
- 20. 非常簡單的DSL在紅寶石
- 21. 簡單的紅寶石平均程序
- 22. 紅寶石簡單的類問題
- 23. 紅寶石NATS簡單的發佈
- 24. 未定義的方法 '捕獲' 與Postmarkdown紅寶石寶石
- 25. 紅寶石簡單的方法列出接下來N個數字
- 26. 紅寶石方法參數
- 27. 紅寶石 - 在類方法
- 28. 紅寶石方法截取
- 29. 紅寶石class_eval方法
- 30. 紅寶石分配方法
想這可能是在圖書館,但不確定。 – MikeJ 2009-10-14 15:02:19