Espérons que quelque chose de moins newbish que mon dernier ...Ruby: "dans` <= ': comparaison des Fixnum avec Array a échoué (ArgumentError)"
Quoi qu'il en soit, je fais un peu de codage sur une petite application qui simplifie les nombres jusqu'aux nombres premiers, principalement pour aider avec de petites choses comme les devoirs.
Cependant, une méthode particulière me donne l'erreur mentionnée dans le titre:
def get_simps(num)
curr = 2
print("Working...")
while (curr <= num)
#If they divide cleanly, then it's a simplified form
if (num % curr == 0)
res = [curr, num/curr]
break
end
curr += 1
end
print("\n")
return res
end
Si l'argument num est fourni par cette déclaration:
print("Insert number here: ")
num = gets().chomp().to_i()
Rendant ainsi l'erreur bizarre : pourquoi dit-on que je compare un Fixnum et un ARRAY? J'ai également fait ceci:
if (num.class() == curr.class())
print "Cheese"
end
et il a imprimé le fromage. Pourquoi la raison de l'erreur, alors?
Copypasting dans la CISR et appeler avec 'get_simps (gets(). Chomp(). To_i()) 'ne me donne pas d'erreur (bien que cela donne de mauvais résultats: get_simps (15000) => [2, 7500] – Tordek
Le code que vous avez posté fonctionne bien pour moi. Faites-vous quelque chose comme' get_simps (get_simps (20)) '? –
Aussi," faux "puisque je m'attendais à ce qu'il renvoie une factorisation en nombres premiers du nombre – Tordek