Mais jusqu'où va rebondir cette balle ?

Photo by Ben Hershey / Unsplash

Cette semaine, c'est Quentin qui vous propose un #KataOfTheWeek : Balle rebondissante

Briefing du Kata : Un enfant joue avec un ballon au Nième étage d'un grand immeuble. La hauteur de cet étage, h, est connue.

Il laisse tomber la balle par la fenêtre. La balle rebondit (par exemple), aux deux tiers de sa hauteur (un rebond de 0,66).

Sa mère regarde par une fenêtre située à 1,5 mètre du sol.

Combien de fois la mère verra-t-elle la balle passer devant sa fenêtre (y compris lorsqu'elle tombe et rebondit) ?

Trois conditions doivent être réunies pour que l'expérience soit valable : Le paramètre flottant "h" en mètres doit être supérieur à 0. Le paramètre flottant "bounce" doit être supérieur à 0 et inférieur à 1. Le paramètre flottant "fenêtre" doit être inférieur à h. Si les trois conditions ci-dessus sont remplies, retournez un nombre entier positif, sinon retournez -1.

Attention : La balle ne peut être vue que si la hauteur de la balle rebondie est strictement supérieure au paramètre "fenêtre".

Saurez-vous résoudre le problème ?

Bon courage !


Et voici une solution proposé par l'auteur en Java:

public static int bouncingBall(double h, double bounce, double window) {
      if (h <= 0 || bounce <= 0 || bounce >= 1 || window >= h) {
        return -1;
      }
      return 2 + bouncingBall(h * bounce, bounce, window);
  }

Votre équipe TakiVeille

TakiVeille

TakiVeille