## Home > katas > Grasshopper - Summation (8kyu) [Ruby]

# Grasshopper - Summation (8kyu) [Ruby]

Chek kata on Codewars

Description:

```
Write a program that finds the summation of every number from 1 to num. The number will always be a positive integer greater than 0.
For example:
summation(2) -> 3
1 + 2
summation(8) -> 36
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8
```

#### Solution 1

Let's start with `loop`

solutions.

```
def summation(num)
sum = 0
num.times do |n|
sum += n+1
end
sum
end
```

#### Solution 2

Let's solve it with `Gauss Formula`

.

```
def summation(num)
num * (num + 1) / 2
end
```

#### Solution 3

Let's solve it with `reduce`

.

```
def summation(num)
(1..num).reduce(0, :+)
end
```

Let's solve it with `inject`

.

```
def summation(num)
(1..num).inject { |acc, cur| acc + cur }
end
```

#### Solution 4

Let's solve it with `sum`

.

```
def summation(num)
(1..num).sum
end
```

#### Solution 5

Let's solve it with `recursion`

.

```
def summation(num)
num != 0 ? num + summation(num - 1) : num
end
```