教孩子學編程: 數學題1

我想有一天, 我會教孩子們編程. 下面一個很有趣的例子.

 

今天微信羣裏面出了這麼一道題.

詳見下圖題4.

(BTW, 如果把題幹中的交換改成計算, 題幹講更容易理解.)

 

 

 

很有趣的問題. 對應的ruby代碼如下:

 

start_num  =  3
begin
  old_num = start_num
  new_num = old_num.to_s.chars.map(&:to_i).map{ |a| a*a*a }.inject(:+)
  puts new_num
  start_num = new_num
end while old_num != new_num

 

 

 關於上述代碼的更多信息:

map

http://ruby-doc.org/core-2.0/Array.html

 

inject

http://ruby-doc.org/core-2.1.0/Enumerable.html

 

:symbol_name

&:symbol_name / &

http://ablogaboutcode.com/2012/01/04/the-ampersand-operator-in-ruby/

http://ruby.about.com/od/beginningruby/a/The-Magic-Of-Symbol-To_proc.htm

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章