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ü.

Hiç yorum yok:

Yorum Gönder