Walkthrough

Solutions

def sum_to(int)
  sum = 0
  current_num = 0

  while current_num < int + 1
    sum += current_num
    current_num += 1
  end

  sum
end

def magic_number?(n)
  string_digits = n.to_s.chars
  sum = 0

  string_digits.each do |digit_character|
    sum += digit_character.to_i
  end

  sum == 7
end

# Here's another way to solve magic_number? without string-conversion (and using a while-loop)

def magic_number?(n)
  sum = 0
  while n > 0
    sum += (n % 10)
    n /= 10
  end
  sum == 7
end

def magic_numbers(n)
  magic_numbers_array = []
  number = 1

  until magic_numbers_array.size == n
    magic_numbers_array << number if magic_number?(number)
    number += 1
  end

  magic_numbers_array
end

def uniq(arr)
  uniq_array = []
  arr.each do |element|
    uniq_array << element unless uniq_array.include?(element)
  end

  uniq_array
end


def all_uniqs(arr1, arr2)
  uniqs = []

  arr1.each do |el|
    uniqs << el unless arr2.include?(el)
  end

  arr2.each do |el|
    uniqs << el unless arr1.include?(el)
  end

  uniqs
end

# Here is how you might solve uniq and all_uniqs using while-loops

def uniq(arr)
  i = 0
  uniq_arr = []

  while i < arr.length
    unless uniq_arr.include?(arr[i])
      uniq_arr << arr[i]
    end
    i += 1
  end

  uniq_arr
end

def all_uniqs(arr1, arr2)
  uniq_arr = []
  i = 0

  while i < arr1.length
    uniq_arr << arr1[i] unless arr2.include?(arr1[i])
    i += 1
  end

  i = 0

  while i < arr2.length
    uniq_arr << arr2[i] unless arr1.include?(arr2[i])
    i += 1
  end

  uniq_arr
end

results matching ""

    No results matching ""