这是问题所在。
系列,1 1 + 2 2 + 3 3 + ... + 10 10 = 10405071317。
找出该系列的最后十位数,1 1 + 2 2 + 3 3 + ... + 1000 1000
这是我的代码:数字是如此之大,需要一段时间来处理。有没有更好的方法来做到这一点?我可以获得最后10位而不添加所有内容吗?有什么想法吗?
此解决方案有效。但需要一段时间来处理。用Ruby编写
def self_powers
sum =0
1.upto(1000).each do |n|
sum += n**n
end
sum
end
答案 0 :(得分:2)
p (1..1000).map{|x|x**x}.inject(:+).to_s[-10,10]
答案 1 :(得分:1)
有多种方法可以解决这个问题,这非常直接:
sum = 0
(1...1_000).each { |x| sum += x**x }
puts sum % 10**10
答案 2 :(得分:1)
这是你要找的吗?
(1..1000).inject {|tot,x| tot + x**x} % 10**10