The rgb function is incomplete. Complete it so that passing in RGB decimal values will result in a hexadecimal representation being returned. Valid decimal values for RGB are 0 - 255. Any values that fall out of that range must be rounded to the closest valid value.
Note: Your answer should always be 6 characters long, the shorthand with 3 will not work here.
The following are examples of expected output values:
rgb(255, 255, 255) # returns FFFFFF
rgb(255, 255, 300) # returns FFFFFF
rgb(0,0,0) # returns 000000
rgb(148, 0, 211) # returns 9400D3
翻譯:把 rgb 的 10 進位轉換成 16 進位
def rgb(r, g, b)
end
RSpec.describe "RGB To Hex Conversion" do
it "Example cases" do
expect(rgb(0, 0, 0)).to eq('000000')
expect(rgb(0, 0, -20)).to eq('000000')
expect(rgb(300,255,255)).to eq('FFFFFF')
expect(rgb(173,255,47)).to eq('ADFF2F')
end
end
def rgb(r, g, b)
result = ""
arr = [r, g, b]
first = arr.map do |a|
a = 255 if a >= 255
a = 0 if a <= 0
a
end
first.each do |n|
result += n.to_s(16).length == 1 ? "0" + n.to_s(16).upcase : n.to_s(16).upcase
end
result
end
def rgb(r, g, b)
"%.2X%.2X%.2X" % [r,g,b].map{|i| [[i,255].min,0].max}
end
30 天完賽啦(撒花)~~~
不知不覺每天刷一題就完成了,已經有點像吃飯一樣,有種養成平常習慣的感覺。刷題加上發文大概 1.5 小時,喜歡這種不多不少的時間,同時每天都很踏實的學到新東西的感覺。
大概是因為最多只刷到 Codewars 第五級,還沒遇到太關於演算法的題目,學到比較多是在 Ruby 語法的應用,常常會有「原來這個語法可以這樣用」的 OS,比較多學習到的是「看過的語法新用途」,「學習新的語法」也佔了不少。
以一開始給自己設定的目標「提升 Ruby 語法實作」蠻有幫助的,對於刷題期間幾乎每天都在開發專案的壓力下,透過鐵人賽刷題這樣小壓力的方式來提升能力,相當推薦給其他新手~
接下來要繼續刷題嗎?會繼續!但可能會以 Ruby、JS 交錯著刷,畢竟想走後端工程師,Coding 上 JS 根本少不了,也是未來趨勢。
明年鐵人賽再見:)