国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

ruby 簡單例子

2019-10-26 19:19:04
字體:
供稿:網(wǎng)友
讓我們寫一個(gè)計(jì)算階乘的函數(shù).對于階乘的數(shù)學(xué)定義如下:

n! = 1               (當(dāng) n==0 時(shí))   
= n * (n-1)!       (其它情況)

在Ruby里,可以這樣來寫:

代碼如下:
def fact(n) 
        if n == 0 
          1 
        else 
          n * fact(n-1)   
        end 
      end  

你可能會發(fā)現(xiàn) end 的反復(fù)出現(xiàn),正因?yàn)槿绱?Ruby被叫做"類Algol"語言.(實(shí)際上,Ruby的語法更像Eiffel).同時(shí),你也可能會發(fā)現(xiàn)這段函數(shù)缺少return語句.在這里是可以用return的,但卻不是必須的,因?yàn)橐粋€(gè)Ruby的函數(shù)會自動返回它所最后賦值的元素.

讓我們來試試我們的階乘函數(shù).加入一行代碼會使它成為一個(gè)可工作的程序:

代碼如下:
# Program to find the factorial of a number 
# Save this as fact.rb 
def fact(n)   
   if n == 0     
     1   
   else     
     n * fact(n-1)   
   end 
end 

print fact(ARGV[0].to_i), "/n"  

這里,ARGV是一個(gè)包含命令行參數(shù)的數(shù)組,to_i將字符串轉(zhuǎn)化為整數(shù).

% ruby fact.rb 1
1
% ruby fact.rb 5
120  


當(dāng)參數(shù)為40時(shí)它可以工作嗎?它將使你的計(jì)算器產(chǎn)生溢出(overflow)...

% ruby fact.rb 40
815915283247897734345611269596115894272000000000 


它確實(shí)算出來了.實(shí)際上,Ruby能處理任何你機(jī)器的內(nèi)存所允許的整數(shù).實(shí)際上400!也可以:

% ruby fact.rb 400
64034522846623895262347970319503005850702583026002959458684
44594280239716918683143627847864746326467629435057503585681
08482981628835174352289619886468029979373416541508381624264
61942352307046244325015114448670890662773914918117331955996
44070954967134529047702032243491121079759328079510154537266
72516278778900093497637657103263503315339653498683868313393
52024373788157786791506311858702618270169819740062983025308
59129834616227230455833952075961150530223608681043329725519
48526744322324386699484224042325998055516106359423769613992
31917134063858996537970147827206606320217379472010321356624
61380907794230459736069956759583609615871512991382228657857
上一篇:分析 rudy 類

下一篇:rudy 繼承 概念

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 奉新县| 黑龙江省| 双峰县| 内黄县| 乐清市| 永定县| 白朗县| 平阳县| 商城县| 卫辉市| 梅河口市| 突泉县| 山东| 肥东县| 武邑县| 南江县| 安顺市| 巴青县| 闵行区| 获嘉县| 木兰县| 宿州市| 丹阳市| 兴海县| 汤原县| 开化县| 黄石市| 纳雍县| 磐石市| 宝应县| 博兴县| 临桂县| 桦南县| 安西县| 札达县| 依兰县| 宁河县| 银川市| 青田县| 蒲城县| 铜山县|