# Day 18 of 30 Ruby Coding Challenge - Finding the Missing Number Game

We're going to play a game: find the missing number in a given array. This first solution will be not that great but we'll get the job done!

This is the blog post version of the

Let’s go straight to the point

## Coding Challenge

Create a function that takes an array of numbers between 1 and 10 (excluding one number) and returns the missing number.

A few points:

• The array of numbers will be unsorted (not in order).
• Only one number will be missing.

Examples

Ruby

1

``find_missing_num([1, 2, 3, 4, 6, 7, 8, 9, 10]) ➞ 5``

2

3

``find_missing_num([7, 2, 3, 6, 5, 9, 1, 4, 8]) ➞ 10``

4

5

``find_missing_num([10, 5, 1, 2, 4, 6, 8, 3, 9]) ➞ 7``

Pretty simple, isn’t it?

## Algorithm in Ruby

Let’s break the algorithm down to a few small steps:

### Step 1

We need to go through a list of items (an array), going from 1 to 10.

Ruby

1

``def find_missing_num(array)``

2

``  [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].each do |item|``

3

``    end``

4

``end``

5

6

``array = [1, 2, 3, 4, 6, 7, 8, 9, 10]``

7

``find_missing_num(array)``

Ruby provides us a really better way to do this:

Ruby

1

``def find_missing_num(array)``

2

``  (1..10).each do |item|``

3

``    end``

4

``end``

5

6

``array = [1, 2, 3, 4, 6, 7, 8, 9, 10]``

7

``find_missing_num(array)``

### Step 2

We’re going to compare each number (from 1 to 10) with the numbers in the given array.

Ruby

1

``def find_missing_num(array)``

2

``  (1..10).each do |item|``

3

``    array.each do |number|``

4

``      if item == number``

5

``        break # breaking the execution``

6

``      end      ``

7

``    end``

8

``  end``

9

``end``

10

11

``array = [1, 2, 3, 4, 6, 7, 8, 9, 10]``

12

``find_missing_num(array)``

We break the execution once if find the desired number because we don’t need to continue looking for the number

### Step 3

Because we want to return the number that wasn’t found in the array, I’m going to create a local variable to indicate that.

Ruby

1

``def find_missing_num(array)``

2

``  (1..10).each do |item|``

3

``    found = false``

4

``    array.each do |number|``

5

``      if item == number``

6

``        found = true``

7

``        break``

8

``      end      ``

9

``    end``

10

``    if found = false``

11

``      return item``

12

``    end``

13

``  end``

14

``end``

15

16

``array = [1, 2, 3, 4, 6, 7, 8, 9, 10]``

17

``find_missing_num(array)``

That’s it!

I know, that’s not beautiful but it works : )

Do you have a better/different version? Drop that in the comments and bring more healthy discussions :)

Thanks for the visit and in the next coding challenge we’re going to explore a more decent way to solve this puzzle, see you there!

Don’t forget to come by and say hi!

## Day 14 of 30 Ruby Coding Challenge - Fibonacci Sequence the Ruby Way

Day 14 of 30. We're going to solve the famous Fibonacci sequence by taking advantage of features that Ruby offers.

## Day 16 of 30 Ruby Coding Challenge - Sum Even Numbers

Day 16 of 30 - Ruby Coding Challenges in 30 Days. We're going to sum all the even numbers in a given Fibonacci sequence.This is the blog post version of the Youtube video from the 30 Ruby Coding Challenges in 30 Days series

## Day 17 Ruby Coding Challenge - Sum Even Numbers in Fibonacci Sequence - DZone Web Dev

Day 17 of 30 - Ruby Coding Challenges in 30 Days. We're going to sum all the even numbers in a given Fibonacci sequence with a better code design.

## Hire Ruby on Rails Developer | Hire RoR Developer

#1 Ruby on Rails development company. Hire Ruby on rails developer or a team to build secure, scalable and complex web solutions with a quick turnaround time.

## How You Can Reduce Ruby on Rails Maintenance Cost?

Your Ruby on Rails application will take you to great heights, only if you maintain it rightly. Learn how to reduce ruby on rails maintenance cost.