打印

[结]2008-03-14 测试题(00001)

本主题由 drive2me 于 2008-3-14 11:59 加入精华

[结]2008-03-14 测试题(00001)

版规:
1:周一至周五 每日一题,周末休息
2:请用ruby/php?name=rails" onclick="tagshow(event)" class="t_tag">rails解答,你可以任选一题,或者全选
3:每人在回帖时,请尽量在一贴内答完,将余下的版面留给其他的用户。
4:大家在做题之前,尽量不要去看别人的答案为了防止你的答案影响别人的思维定势,或者被别人直接抄袭,请将你的全部内容包含在discuz代码 hide中,不会使用bbcode的用户,请点击回复按钮,进入富文本编辑器,点隐藏代码,然后在其中输入内容。

5:根据你的答案我们会做出评选,并给予小小的积分奖励

说明:
1:欢迎你踊跃提供你认为有趣的题目,请发在,题目征集栏目中
2:我们需要评委,如果你认为你可以,并且时间充足,请站内短信联系我。期待你能为大家贡献。


Ruby 类:
目前Ruby类,我们采用http://projecteuler.net/index.php?section=problems&id=1 的题目,简单描述 如下:
引用:
在自然数中,10 以内能被3或者5整除的数有 3, 5, 6 和 9,和为23,那么请计算10000以内能被3或者5整除的自然数的总和。
Rails 类:
引用:
我们在项目中经常遇到去关联对象的属性,而关联对象又经常为空,则需要做nil?的判断。譬如

class Coment<AR
  belongs_to :user
end

class User<AR
  has_many :comments
end


我们在使用的时候一般如下:

unless @comment.user.nil?
   puts @comment.user.login
end


想个方法简化他,去掉这冗余的nil?判断
知识的积累在于点滴。千万别被你的惰性给淹没了你的才智。开动你的脑筋,来吧。祝你好运。

[ 本帖最后由 martin 于 2008-3-17 11:08 编辑 ]
本帖最近评分记录
  • drive2me R币 +10 感谢Martin管理员的支持。 2008-3-14 16:21

TOP

稍等

[ 本帖最后由 martin 于 2008-3-17 10:55 编辑 ]

TOP

我来顶一顶。周末来做这些题

I.forget('you'){|something| something.remember.deepen}

TOP

试下Hide

本帖隐藏的内容需要回复才可以浏览

I.forget('you'){|something| something.remember.deepen}

TOP

请积极参与!

Hide的用法可以了?哈哈。

谢谢Martin积极想出办法帮助我们的会员提高Ruby/Rails技巧。希望大家积极参与,参与者均有奖励。

我一会看下Rails的题。呵呵!

谢谢!
Flying Piggy...! 
天地人合一!

TOP



def Euler1(x)
sum = 0
(1...x).each{|i| sum += i if (i % 3 == 0 || i % 5 == 0)}
puts sum
end
#test
Euler1(10000)

用短路|比用OR能快多少?
数学方法:x=1000          233168
               x=10000        23331668
               x=100000      2333316668
               x=1000000    233333166668


[ 本帖最后由 martin 于 2008-3-17 09:47 编辑 ]
本帖最近评分记录
  • martin R币 +5 答题分:) 多谢支持和参与,希望继续。 ... 2008-3-17 10:27

TOP

呵呵.支持,一会看一下.

TOP

Ruby的数值问题,好像那个网站那里是1000,这里是10000。

[code]def count (lim)
	sum = 0
	3.upto(lim - 1) { |n| sum += n if((n%3).zero? || (n%5).zero?) }
	sum
end

puts count 10000
#23331668 


第二个问题再想想。。。

[/code]

[ 本帖最后由 martin 于 2008-3-17 09:47 编辑 ]
本帖最近评分记录
  • martin R币 +5 好同学:) 那个数值是我故意改的。 2008-3-14 12:43
###
blog => red_world,
mail => [image]http://services.nexodyne.com/email/icon/NTbKP7EQRA%3D%3D/c2n6Sgw%3D/R01haWw%3D/0/image.png[/image]
###

TOP

晕,他说我没有权限使用[hide]

``~怎么搞?

TOP

先做简单的



@sum3 =0
@sum5 =0
def show(num)
 0.step(num-1,3){|i| @sum3 +=i  if i % 5 !=0}
 0.step(num-1,5){|i| @sum5 +=i }
 return @sum3 + @sum5
end
p show(10000)


[ 本帖最后由 martin 于 2008-3-17 09:48 编辑 ]
本帖最近评分记录
  • martin R币 +5 呵呵,辛苦了:) 2008-3-14 13:32

TOP

本帖隐藏的内容需要回复才可以浏览

I.forget('you'){|something| something.remember.deepen}

TOP

Rails类:

第二题:

我在项目里是用了:
是用validates_associated这个方法来确保不出现comment.user为nil的情况。

或者在commentmodel里写个方法。
def user_login
  user ? user.login : [xxx
end

然后使用@comment.user_login

[ 本帖最后由 martin 于 2008-3-17 09:49 编辑 ]
本帖最近评分记录
  • martin R币 +5 答题分:) 多谢支持和参与,希望继续。 ... 2008-3-17 10:27

I.forget('you'){|something| something.remember.deepen}

TOP

各位,

Hide的用法,所有级别的会员应该都可以用了。
如有问题,请及时报告。

谢谢!
Flying Piggy...! 
天地人合一!

TOP



    s = 0
    3.upto(9999) {|i| s+=i if i%3 == 0 || i%5==0}
    puts s
  


[ 本帖最后由 martin 于 2008-3-17 09:49 编辑 ]
本帖最近评分记录
  • martin R币 +5 答题分:) 多谢支持和参与,希望继续。 ... 2008-3-17 10:28

TOP

total=0
for i in 1...10000
if i%3==0 || i%5==0
 total+=i
end
end
puts total
本帖最近评分记录
  • martin R币 +5 答题分:) 多谢支持和参与,希望继续。 ... 2008-3-17 10:28

TOP

2008-11-23 22:19 Crawled by CCBot/1.0 (+http://www.commoncrawl.org/bot.html) @38.103.63.61