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

单从技术而言ruby本身确实很爽工作变得轻松有趣!
下面代码演示了如何找出100以内素数:
复制代码 代码如下:

using ;
Mersenne
{
Program
{
void Main( args)
{
for ( i = 2; i < 50; i)
{
(CheckDigital(i))
{
Console.WriteLine("{0} ",i);
}
}
Console.ReadLine;
}
bool CheckDigital( i)
{
(i <= 1) { false; }
(i 2) { true; }
bool _result = true;
for ( j = 2; j < i; j)
{
(i % j 0)
{
_result = false;
;
}
}
_result;
}
}
}


参照这个思路翻译成ruby版:
复制代码 代码如下:

for i in 2..100
flag = true;
for j in 2...i
i % j0
flag = false;
;
end
end
flag
pr i,"\n"
end
end


利用ruby语法灵活性可以精简成以下代码:
复制代码 代码如下:

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


也可以写成这样
复制代码 代码如下:

def checkNum?(num)
true num2
f = true;
for j in 2...num
num % j0
f = false;

end
end
f
end


(2..50).each{|x| pr x,"\n" checkNum?(x)}
另外种实现:
复制代码 代码如下:

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


作者:菩提树下杨过

Tags:  ruby语法 ruby学习资料 ruby学习 ruby学习笔记

延伸阅读

最新评论

发表评论