-
Code package kata func IntegerSum(n int) (sum int) { sum = n * (n+1) / 2 return } func AddMultiples(n int) (sum int) { sum = IntegerSum((n-1)/3) * 3 + IntegerSum((n-1)/5) * 5 - IntegerSum((n-1)/15) * 15 return }
Test Cases package kata_test import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" . "codewarrior/kata" ) var _ = Describe("Multiples of 3 and 5", func() { It("should handle basic cases", func() { Expect(AddMultiples(10)).To(Equal(23)) Expect(AddMultiples(20)).To(Equal(78)) }) It("should handle zeroes", func() { Expect(AddMultiples(0)).To(Equal(0)) Expect(AddMultiples(1)).To(Equal(0)) }) It("should handle large numbers", func() { Expect(AddMultiples(200)).To(Equal(9168)) }) })
Output:
-
Code - package kata
func AddMultiples(n int) (sum int) {for i := 1; i < n; i++ {if i % 3 == 0 || i % 5 == 0 {sum += i}}- func IntegerSum(n int) (sum int) {
- sum = n * (n+1) / 2
- return
- }
- func AddMultiples(n int) (sum int) {
- sum = IntegerSum((n-1)/3) * 3 + IntegerSum((n-1)/5) * 5 - IntegerSum((n-1)/15) * 15
- return
- }
- All
- {{group.name}} ({{group.count}})
This comment has been reported as {{ abuseKindText }}.
Show
This comment has been hidden. You can view it now .
This comment can not be viewed.
- |
- Reply
- Edit
- View Solution
- Expand 1 Reply Expand {{ comments?.length }} replies
- Collapse
- Remove
- Remove comment & replies
- Report
{{ fetchSolutionsError }}