[RUBY] Questions de test codées posées lors d'un changement de carrière d'ingénieur inexpérimenté

Je publierai sous forme de mémorandum les questions qui ont été posées lors du changement d'emploi inexpérimenté et les réponses que j'ai étudiées et traitées à ma manière.

C'est une réponse que je me suis donnée à cause de mon manque de capacité, donc je serais très heureux si vous pouviez la corriger ou l'expliquer!

▼ Problème 1 FizzBuzz

Créez une fonction qui génère des nombres de 1 à 100 dans l'ordre. Cependant, si le numéro de sortie est un multiple de 3, "Fizz" s'affiche, si le numéro de sortie est un multiple de 5, "Buzz" est affiché, et si le numéro de sortie est un multiple de 3 et un multiple de 5, "Fizz" est affiché. Veuillez sortir "FizzBuzz" au lieu de nombres. Également, sortez le code de saut de ligne (LF- \ n) après la sortie de chaque nombre ou chaîne de caractères.

code fizzbuzz


(1..100).each do |n| #Répétez le processus de 1 à 100
  def fizzbuzz(n)
    if n % 15 == 0 #Sortie FizzBuzz lorsqu'il est un multiple de 3 et 5 (3✖︎5)(9/21 Addendum Il y a un meilleur correctif de code dans les commentaires.)
      puts "FizzBuzz"
    elsif n % 3 == 0 #Sortie Fizz quand il est un multiple de 3
      puts "Fizz"
    elsif n % 5 == 0 #Sortie Buzz lorsqu'il est un multiple de 5
      puts "Buzz"
    else
      puts n #Numéros de sortie si les conditions ci-dessus ne sont pas remplies
    end
  end
  
  puts fizzbuzz(n) #Méthode de sortie fizzbuzz(9/21 Addendum Pas besoin de mise en commentaire)
end

▼ Problème 2 Sortie d'un nombre premier

Créez une fonction qui génère des nombres premiers de 1 à 1000. La définition d'un nombre premier est la suivante.

Un nombre premier est un nombre naturel supérieur à 1 et qui n'a que 1 et lui-même.

Code qui produit un nombre premier


primeReturn = [] #Faire de primeReturn un tableau
(1..1000).each do |n| #Répéter le traitement de 1 à 1000
  next if n == 1 #Si la condition if est vraie, passez au processus suivant avec next

  if n == 2
    primeReturn.push(n) #Ajoutez n à la fin du tableau primeReturn avec la méthode push
    next #Passez au processus suivant
  end

#Comme indiqué dans les commentaires, l'algorithme ici est un gaspillage.
  judge = true
  primeReturn.each do |number|
    if n % number == 0 #Traitement des nombres premiers
      judge = false
      break #Mettre fin de force au processus en cours et passer au processus suivant
    end
  end

  primeReturn.push(n) if judge #Ajoutez n à la fin du tableau primeReturn avec la méthode push uniquement si juge est vrai
end

puts primeReturn #Sortie primeReturn (nombre premier de sortie)

__ * Dans le cas du rubis, cela peut être fait plus facilement. __

code simple pour ruby


require 'prime' #Charger la bibliothèque principale
Prime.each(1000) {|x| p x} #Oh, c'est très simple. .. ..

▼ Question 3 Combien de fois le numéro 7 est-il produit?

J'ai créé un programme qui génère des nombres de 0 à 9999 dans l'ordre d'une étape. Combien de fois le nombre 7 est-il émis lorsque ce programme est exécuté? Par exemple, si 7777 est émis, le nombre 7 est compté comme étant sorti 4 fois. Veuillez répondre à la réponse à cette question ou au programme pour calculer la réponse.

Code pour compter le nombre 7


num = [*(1..9999)].to_s # to_Convertit le contenu du tableau s en chaîne

puts num.count("7") #Comptez le nombre de 7 caractères de la chaîne de caractères dans le tableau

URL référencée

https://qiita.com/motoki4917/items/ffc89d955e20b91d1014 https://techacademy.jp/magazine/7507 https://docs.ruby-lang.org/ja/latest/class/Prime.html https://docs.ruby-lang.org/ja/latest/method/Array/i/inspect.html https://qiita.com/syo19961113/items/9f189424b5af5e084d33

Recommended Posts

Questions de test codées posées lors d'un changement de carrière d'ingénieur inexpérimenté