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

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

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

Резултати

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

Код

package main
import "fmt"
func Pow(a, b uint64) uint64 {
if b == 0 {
return 1
} else if b == 1 {
return a
} else if b%2 == 0 {
return Pow(a*a, b/2)
} else {
return a * Pow(a*a, (b-1)/2)
}
}
func SquareSumDifference(n uint64) uint64 {
var SumSquare uint64 = Pow((n*(n+1))/2, 2)
var SquaresSum uint64 = (n * (n + 1) * (2*n + 1)) / 6
return SumSquare - SquaresSum
}
func main() {
fmt.Println(SquareSumDifference(10))
}

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

PASS
ok  	_/tmp/d20161101-5193-1diby3x	0.003s
PASS
ok  	_/tmp/d20161101-5193-1diby3x	0.003s
PASS
ok  	_/tmp/d20161101-5193-1diby3x	0.003s
PASS
ok  	_/tmp/d20161101-5193-1diby3x	0.003s

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

Александър обнови решението на 29.10.2016 23:58 (преди над 1 година)

+package main
+
+func Pow(a, b uint64) uint64 {
+ if b == 0 {
+ return 1
+ } else if b == 1 {
+ return a
+ } else if b%2 == 0 {
+ return Pow(a*a, b/2)
+ } else {
+ return a * Pow(a*a, (b-1)/2)
+ }
+}
+
+func SquareSumDifference(n uint64) uint64 {
+ var SumSquare uint64 = Pow((n*(n+1))/2, 2)
+ var SquaresSum uint64 = (n * (n + 1) * (2*n + 1)) / 6
+ return SumSquare - SquaresSum
+}
+
+func main() {
+}

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

package main
+import "fmt"
+
func Pow(a, b uint64) uint64 {
if b == 0 {
return 1
} else if b == 1 {
return a
} else if b%2 == 0 {
return Pow(a*a, b/2)
} else {
return a * Pow(a*a, (b-1)/2)
}
}
func SquareSumDifference(n uint64) uint64 {
var SumSquare uint64 = Pow((n*(n+1))/2, 2)
var SquaresSum uint64 = (n * (n + 1) * (2*n + 1)) / 6
return SumSquare - SquaresSum
}
func main() {
+ fmt.Println(SquareSumDifference(10))
}