0

これが問題です。

シリーズ、1 1 + 2 2 + 3 3 + ... + 10 10 = 10405071317.

系列の最後の 10 桁を検索します。1 1 + 2 2 + 3 3 + ... + 1000 1000

これが私のコードです: 数値が非常に大きいため、処理に時間がかかります。これを行うためのより良い方法はありますか?足し算せずに最後の 10 桁を求めることはできますか? 何かご意見は?

このソリューションは機能します。ただし、処理に時間がかかります。ルビーで書かれた

def self_powers

    sum =0

     1.upto(1000).each do |n|
       sum += n**n
     end
    sum
end
4

3 に答える 3

1

これを解決するには複数の方法がありますが、これは非常に直接的です。

sum = 0
(1...1_000).each { |x| sum += x**x }
puts sum % 10**10
于 2013-10-18T07:00:54.930 に答える
1

これはあなたが探しているものですか?

(1..1000).inject {|tot,x| tot + x**x} % 10**10
于 2013-10-18T07:04:59.867 に答える