Решение на Разлика в сумите от Александър Александров

Обратно към всички решения

Към профила на Александър Александров

Резултати

  • 10 точки от тестове
  • 0 бонус точки
  • 10 точки общо
  • 4 успешни тест(а)
  • 0 неуспешни тест(а)

Код

package main
/*
// this variant although much prettier can overflow quite fast
func SquareSumDifference(n uint64) uint64 {
sumOfSquares := n * (n + 1) * (2*n + 1) / 6
squareOfSum := n * n * (n + 1) * (n + 1) / 4
return squareOfSum - sumOfSquares
}*/
func SquareSumDifference(n uint64) uint64 {
var sumOfSquares uint64
var squareOfSum uint64
var count uint64
for ; count < n+1; count++ {
sumOfSquares += count * count
squareOfSum += count
}
return squareOfSum*squareOfSum - sumOfSquares
}

Лог от изпълнението

PASS
ok  	_/tmp/d20161101-5193-xkka2d	0.003s
PASS
ok  	_/tmp/d20161101-5193-xkka2d	0.003s
PASS
ok  	_/tmp/d20161101-5193-xkka2d	0.003s
PASS
ok  	_/tmp/d20161101-5193-xkka2d	0.003s

История (1 версия и 0 коментара)

Александър обнови решението на 28.10.2016 00:09 (преди над 1 година)

+package main
+
+/*
+// this variant although much prettier can overflow quite fast
+func SquareSumDifference(n uint64) uint64 {
+ sumOfSquares := n * (n + 1) * (2*n + 1) / 6
+ squareOfSum := n * n * (n + 1) * (n + 1) / 4
+ return squareOfSum - sumOfSquares
+}*/
+
+func SquareSumDifference(n uint64) uint64 {
+ var sumOfSquares uint64
+ var squareOfSum uint64
+ var count uint64
+
+ for ; count < n+1; count++ {
+ sumOfSquares += count * count
+ squareOfSum += count
+ }
+
+ return squareOfSum*squareOfSum - sumOfSquares
+}