Personnellement, je ne suis pas très fan de ces questions casse-tête, je préfère les vrais exercices de programmation dans les interviews.
Cela dit, cela dépendrait d'abord si je peux dire s'ils sont cassés ou non à partir du sol sur lequel je les laisse tomber. Je suppose que je peux.
Je monterais au deuxième étage, déposerais la première bille. S'il se cassait, j'essaierais le premier étage. Si cela cassait, je saurais que ce n'était pas un sol.
Si le premier ne cassait pas, j'irais au 4ème étage et je tomberais de là. Si cela cassait, je redescendais et récupérais l'autre bille, puis je laissais tomber au 3ème étage, cassant ou non, je saurais quelle est la limite.
Si ni l'un ni l'autre ne se cassaient, j'irais chercher les deux, et je ferais le même processus, cette fois en commençant au 6ème étage.
De cette façon, je peux sauter tous les autres étages jusqu'à ce que j'obtienne une bille qui se brise.
Ceci serait optimisé si le marbre se cassait tôt... Je suppose qu'il y a probablement un nombre optimal d'étages que je pourrais sauter pour tirer le meilleur parti de chaque saut... mais si l'un se casse, je devrais vérifier chaque étage individuellement à partir du premier étage au-dessus du dernier étage connu... ce qui bien sûr serait pénible si je sautais trop d'étages (désolé, je ne vais pas trouver la solution optimale pour le moment).
Idéalement, je voudrais un sac entier de billes, puis je pourrais utiliser un algorithme de recherche binaire et diviser le nombre d'étages par deux à chaque goutte... mais alors, là n'était pas la question, n'est-ce pas ?< /p>