1 Ocak 2014 Çarşamba
Problem 6 - Sum Square Difference
Soru
İlk 10 sayının teker teker kareleri toplamı
f(10) = 1^2 + 2^2 + ... + 10^2 = 385
Toplamlarının karesi ise
p(10) = (1 + 2 + ... + 10)^2 = 552 = 3025
Bunlar arasındaki fark p(10)-f(10) = 3025-385 = 2640
Öyleyse p(100) - f(100) = ?
Çözüm
n'e kadar olan sayıların toplamını veren formül, n(n+1)/2
Öyleyse p(n) = (n(n+1)/2)^2
n'e kadar olan sayıların kareleri toplamını ise n(n+1)(2n+1)/6 formülüyle elde ediyoruz.
Öyleyse çözüm çok kolay bir hal aldı.
Kodlama
int top = 0;
int n = 100;
top = (int)Math.Pow((n * (n + 1)/2),2) - (n)*(n+1)*(2*n+1)/6;
Sonuç : 25164150
Çözüm 1ms'nin altında sürdü.
Kaydol:
Kayıt Yorumları (Atom)
Hiç yorum yok:
Yorum Gönder