Решение на Разлика в сумите от Пламен Калчев

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

Към профила на Пламен Калчев

Резултати

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

Код

package main
func main() {}
// SquareSumDifference returns the difference between the square of the sum and the sum of suqares of the first n natural numbers.
func SquareSumDifference(n uint64) uint64 {
nums := make([]uint64, 0, n)
for i := uint64(1); i <= n; i++ {
nums = append(nums, i)
}
var sum, sumSquares uint64
for _, v := range nums {
sumSquares += v * v
sum += v
}
return sum*sum - sumSquares
}

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

PASS
ok  	_/tmp/d20161101-5193-1w1mynu	0.004s
PASS
ok  	_/tmp/d20161101-5193-1w1mynu	0.004s
PASS
ok  	_/tmp/d20161101-5193-1w1mynu	0.003s
PASS
ok  	_/tmp/d20161101-5193-1w1mynu	0.003s

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

Пламен обнови решението на 26.10.2016 18:20 (преди над 1 година)

+package main
+
+func main() {}
+
+// SquareSumDifference returns the difference between the square of the sum and the sum of suqares of the first n natural numbers.
+func SquareSumDifference(n uint64) uint64 {
+ nums := make([]uint64, 0, n)
+ for i := uint64(1); i <= n; i++ {
+ nums = append(nums, i)
+ }
+
+ var squareSum, sumSquares uint64
+ for _, v := range nums {
+ sumSquares += v * v
+ squareSum += v
+ }
+ return squareSum*squareSum - sumSquares
+}

Пламен обнови решението на 01.11.2016 12:00 (преди над 1 година)

package main
func main() {}
// SquareSumDifference returns the difference between the square of the sum and the sum of suqares of the first n natural numbers.
func SquareSumDifference(n uint64) uint64 {
nums := make([]uint64, 0, n)
for i := uint64(1); i <= n; i++ {
nums = append(nums, i)
}
- var squareSum, sumSquares uint64
+ var sum, sumSquares uint64
for _, v := range nums {
sumSquares += v * v
- squareSum += v
+ sum += v
}
- return squareSum*squareSum - sumSquares
+ return sum*sum - sumSquares
}