Maison >interface Web >js tutoriel >Codewars - Construisez une pile de cubes

Codewars - Construisez une pile de cubes

Patricia Arquette
Patricia Arquetteoriginal
2025-01-07 08:32:39577parcourir

Salutations.

Codewars - Build a pile of Cubes

Je publie les défis Codewars et mon processus de réflexion dans cette série. J'utilise JS et Node 18 autant que possible. Par souci de clarté, j'en fais un usage équitable.

La prochaine étape est délicate pour nous, les gens qui ont des difficultés avec les mathématiques. C'est quand même un beau défi. Essentiellement, cela revient à déterminer la somme de « n » cubes. Ensuite, il y a de la magie noire (alias : l'algèbre) et voilà ! Résolu.

Somme des cubes expliquée avec preuve.

Solution complète :

function findNb(m) {

  // sum of n cubes = ( n^2 * (n+1)^2 ) / 4

  let number = m * 4;
  number = number ** (1/2);
  let numberAux = number ** (1/2);
  let floor = Math.floor(numberAux);
  let ceiling = (Number.isInteger(numberAux)) ? floor + 1 : Math.ceil(numberAux);
  if ( floor * ceiling == number ){
    return floor;
  }
  return (-1);
}

Pourquoi calculons-nous le sol et le plafond ? Car si l'argument m représente bien une somme de "n" cubes, alors numberAux est EN PARTIE le nombre que nous recherchons. Nous avons juste besoin de la partie entière. Qui est "n". Et c'est aussi le sol.

Si 'm' ne représente pas une somme de cubes, alors la fonction renvoie -1. Ce n'est pas grave.

Ça marche. Mais je ne sais pas si moi, dans 6 mois, je comprendrai quelque chose.

Prends soin de toi. Boire de l'eau ???.

Précédent

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn