ruby 学习笔记(1) 初识语法

所属分类: 脚本专栏 / ruby专题 阅读数: 243
收藏 0 赞 0 分享

单从技术而言,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(',') #输出结果

作者:菩提树下的杨过

更多精彩内容其他人还在看

Ruby一行代码实现的快速排序

这篇文章主要介绍了Ruby一行代码实现的快速排序,本文直接给出实现代码,超级简洁的一个的方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby实现的3种快速排序算法

这篇文章主要介绍了Ruby实现的3种快速排序算法,本文给出了快速排序的普通版本、快速排序的随机化版本、快速排序的利用了Ruby的语法糖的随机化版本三个版本,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby实现的最优二叉查找树算法

这篇文章主要介绍了Ruby实现的最优二叉查找树算法,本文直接给出实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby实现的最短编辑距离计算方法

这篇文章主要介绍了Ruby实现的最短编辑距离计算方法,本文直接给出实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby实现的最长公共子序列算法

这篇文章主要介绍了Ruby实现的最长公共子序列算法,本文直接给出实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby实现的合并排序算法

这篇文章主要介绍了Ruby实现的合并排序算法,本文直接给出实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby实现的矩阵连乘算法

这篇文章主要介绍了Ruby实现的矩阵连乘算法,本文直接给出实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby实现的各种排序算法

这篇文章主要介绍了Ruby实现的各种排序算法,本文给出了Bubble sort、Insertion sort、Selection sort、Shell sort等排序的实现方法,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby实现生产者和消费者代码分享

这篇文章主要介绍了Ruby实现生产者和消费者代码分享,本文直接给出实现代码,需要的朋友可以参考下
收藏 0 赞 0 分享

Ruby中require、load、include、extend的区别介绍

这篇文章主要介绍了Ruby中require、load、include、extend的区别介绍,require、load用于文件,如.rb等等结尾的文件,include、load则用于包含一个文件中的模块,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多