Maison >interface Web >js tutoriel >Codewars - Construisez une pile de cubes
Salutations.
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!