Maison > interface Web > js tutoriel > Codewars - Série pour débutants #um de nombres

Codewars - Série pour débutants #um de nombres

Patricia Arquette
Libérer: 2025-01-05 02:25:37
original
1014 Les gens l'ont consulté

Salutations.

Codewars - Beginner Series #um of Numbers

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.

Donc, la prochaine étape de cette série est la Somme des Nombres. Dans ce problème spécifique, il s'agit plus de mathématiques que de codage. Vous voyez, vous devez calculer une superficie. Dans ce graphique, par exemple, nous affichons toutes les valeurs comprises entre -5 et 4 :

Codewars - Beginner Series #um of Numbers

Vous pouvez utiliser l'intégration si vous le souhaitez, mais il existe un itinéraire plus simple. Puisque nous avons affaire à des fonctions linéaires, nous pouvons rechercher la médiane et multiplier par l'étendue :

sum=m edianran gesomme = médiane * plagesum=médiane∗plage

sum=b b a2(ba 1)somme = b - frac{b-a}{2} * (b - a 1)sum=b−2b−a(b−a 1)

sum= b2a2 b a2somme = frac{b^2 - a^2 b a}{2}sum= 2b2a 2 b a

Il nous suffit donc d'insérer cette équation dans le code. Ça commence comme ça :

function getSum(a, b)
{
   //Good luck!
}
Copier après la connexion
function getSum(a, b)
{
   let sum = (b ** 2 - a ** 2 + b + a ) / 2 ;
   return sum;
}
Copier après la connexion

On le teste et :

Codewars - Beginner Series #um of Numbers

Mais pourquoi ? Je sais que l'équation est correctement simplifiée, alors... Oh. C'est ça le problème :

getSum(a, b)
Copier après la connexion

(a,b) exactement dans cet ordre. Cela fonctionne si l'entrée est (-5,4), mais pas si c'est (4,-5). Réparer? Vous pouvez coder une instruction « if » pour les deux situations. Mais je ne le ferai pas comme ça. Je vais faire ça :

if (a > b){
    let c = a;
    a = b;
    b = c;
  }
Copier après la connexion

Et donc, on a tout mis en place :

function getSum(a, b)
{
  if (a > b){
    let c = a;
    a = b;
    b = c;
  }
  let sum = (b ** 2 - a ** 2 + b + a ) / 2 ;
  return sum;
}
Copier après la connexion

Plutôt correct, facile à lire.

Cya. 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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal