[閒聊] trivial example
剛剛看到別人的作業,無聊(空虛)之下順手寫了一下
題目大概就是輸入一個整數,然後把所有的位數相加後輸出
如 1234 => 10; 555 => 15;
一開始寫成這樣:
v, r = gets.to_i*10, 0
r += v%10 while (v/=10) > 0
puts r
不過據說要用遞迴,所以我改成這樣:
def go v, r
return go(v/10, r+v%10) if v > 0
r
end
puts go(gets.to_i*10, 0)
不過感覺很無趣,所以試了一下一行 Ruby...
puts (l=lambda{|l,v,r|return(if v>0 then l[l,v/10,r+v%10] else r
end)})[l,gets.to_i*10,0]
不幸 BBS 不夠寬放不下…
拆成好幾行長這樣:
puts ( l = lambda{ |l, v, r| return (if v > 0
l[l, v/10, r+v%10]
else
r
end)}
)[l, gets.to_i*10, 0]
不過還替 lambda 取名稱實在是太蠢了…但 self 又 call 不到
有啥好方法嗎?
--
By Gamers, For Gamers - from the past Interplay
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.232.18.139
推
10/05 23:32, , 1F
10/05 23:32, 1F
推
10/05 23:50, , 2F
10/05 23:50, 2F
Ruby 近期熱門文章
PTT數位生活區 即時熱門文章