Ruby循环中的Ruby返回值和代码说明

时间:2016-07-03 21:07:28

标签: ruby

这是Digit fifth powers 我不知道为什么我的" ans"为零,因为each_sum应具有其值并在

中相加
ans  = ans  + each_sum

并且

中有一个匹配的数字
i == i.to_s.each_char{|c| each_sum = each_sum + c.to_i**5 }

代码

def digit_fifth_powers
    max = 0 
    4.times {max = max + 9**5}    #max = 236196
    each_sum,ans = 0,0
    (2..max).each do |i|
        if i == i.to_s.each_char{|c| each_sum = each_sum + c.to_i**5 }
            ans  = ans  + each_sum 
        end
    end 
    ans
end 

p digit_fifth_powers

ans是0

1 个答案:

答案 0 :(得分:1)

好。我检查了两次,我之前的回答是不正确的。

点是i.to_s == ...是Fixnum,而long语句返回String,因此条件为false。设为>>> from functools import wraps >>> >>> def p(api=False): def decorator(f): @wraps(f) def decorated_f(*args, **kwargs): print(api) return f(*args, **kwargs) return decorated_f return decorator >>> @p(api=True) def a(): return 'api' >>> a() True 'api'