亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

ruby基礎語法學習筆記

標簽:
Ruby

虽然ruby/ruby on rails从2007年就一直获奖无数,但身为一个中国人,一直对小日本创造的东西不怎么感兴趣,想想其实也没必要,技术本身是无国界的,日本其实也有值得学习的地方(扯远了,呵)

单从技术而言,ruby本身确实很爽,令程序员的工作变得轻松有趣!

下面的代码演示了如何找出100以内的素数:

using System;
 
namespace Mersenne
{
    class Program
    {
        static void Main(string[] args)
        {
            for (int i = 2; i < 50; i++)
            {
                if (CheckDigital(i)) 
                {
                    Console.WriteLine("{0} ",i);
                }
            }
 
            Console.ReadLine();
        }
 
 
        static bool CheckDigital(int i) 
        {
            if (i <= 1) { return false; }
            if (i == 2) { return true; }
 
            bool _result = true;
 
            for (int j = 2; j < i; j++)
            {
                if (i % j == 0) 
                {
                    _result =  false;
                    break;
                }
            }
 
            return _result;
        }
    }

 参照这个思路,翻译成ruby版:

for i in 2..100       
    flag = true;
    for j in 2...i            
        if i % j==0
            flag = false;                
            break;
        end
    end       
    if flag 
        print i,"\n"
    end   
end

 

利用ruby语法的灵活性,可以精简成以下代码:

for i in 2..100       
    flag = true;
    (2...i).each{|n| flag=false if i % n ==0}
    print i,"\n" if flag         
end

也可以写成这样

def checkNum?(num)
    return true if num==2
    f = true;
    for j in 2...num        
        if num % j==0
            f = false;
            break
        end
    end
    return f
end
 
(2..50).each{|x| print x,"\n" if checkNum?(x)}


另外一种实现:

$arr=[] #定义一个全局数组,用来保存计算结果
$arr[0] = 2
 
#定义方法,将n以内的奇素数加入$arr (素数同时肯定奇数,2除外)
def add_prime(n)
    3.step(n,2){|num| $arr<<num if is_prime? num}
end
 
#定义方法 判断是否为素数
def is_prime?(number)
    j=0
    while $arr[j] * $arr[j] <=number
        return false if number % $arr[j] ==0
        j +=1
    end
    return true
end
 
add_prime(50); #调用
 
puts $arr.join(',') #输出结果


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消