看一下這個練習。
- 定義方法
max_2_sum
,它接受一個整數數組作爲參數,並返回該數組中最大的兩個元素的和。對於空數組它應該返回0。對於只有一個元素的數組,它應該返回此元素。
這個練習需要注意以下幾點:
1.對傳入的參數數量進行判斷,無參數傳入時輸出0;一個參數傳入時輸出參數本身;兩個以上參數傳入時返回最大的兩個元素的和。
2.既然求兩個最大元素的和,就要對數組進行排序。而Ruby中的sort方法只是根據ASCII碼進行排序,我在這裏使用到了sort_by方法。
def max_2_sum(a)
total = 0
if a.size == 0
p total
else if a.size == 1
p a[0].to_s.to_i
else
a.sort_by! {|i| i.to_s.to_i}
a.reverse!
p a
total = a[0].to_s.to_i + a[1].to_s.to_i
p total
end
end
end
max_2_sum(ARGV)
我這個程序寫得比較粗糙,只是簡單實現了題目的要求,大家有什麼好的想法,歡迎指教。