La tâche consiste à écrire une fonction qui prend N comme entrée où N est un nombre (de -32768 à 32768) et renvoie le carré de ce nombre. Tâche simple, à l'exception du fait que nous ne pouvons utiliser aucun opérateur tel que *, + ou même utiliser des mathématiques. fonctions telles que POW. eval n'est pas autorisé également.
Encore plus difficile, c'est que nous devons garder le code de caractère compter Je ne peux absolument pas penser à un moyen d'obtenir le carré d'un numéro sans utiliser le + ou *. Et encore pire, garder le personnage compte moins, c'est impossible pour moi. P> Les codes comme celui-ci ne fonctionneront pas car: j'ai utilisé le signe plus et le nombre de caractères est supérieur à 60. P> function sq(n){
var res=n;
for(i=1;i<n;i++)
res+=n;
return res;
}
3 Réponses :
p> ** code> n'est pas dans votre liste, vous pourrez peut-être l'utiliser:
sq=n=>{s=0;for(let i=n;i>0;i--)s=s-(-n);return s}
console.log(sq(5));
J'ai oublié de mentionner que ** n'est pas autorisé et je suis vraiment désolé, mais le nombre de personnages est en réalité de 54 caractères. C'est toujours un excellent moyen en utilisant - au lieu de + mais cela ne semble pas l'accepter
Vérifiez à nouveau - 'sq = n => {s = 0; pour (laissez i = n; i> 0; i -) s = s - (- n); retour S}'. Longueur === 49 code>
Ce problème est réellement issu d'un site appelé Codewars et je tire mes cheveux pendant 3 jours jusqu'à ce que j'ai décidé de demander de l'aide. Voici le lien vers la tâche originale: Codewars.com/kata/... Merci pour votre travail!
Je viens d'ajouter le lien vers le site Web afin que vous puissiez aussi bien l'essayer. et le code que vous avez envoyé n'a pas semblé fonctionnant
Chaque fois que j'essaie de faire quelque chose sur ce site, il me dit langue manquante code> même lorsque je sélectionne JavaScript en haut. Le site semble avoir des problèmes. Il suffit d'appuyer sur "Exécution de l'extrait de code" ici. Vous verrez donc que cela se creille comme prévu
@Certeperformance qui est une ressource très très, je l'utilise beaucoup, je ne reçois aucun problème de ce type, même si vous pouvez trouver de nombreuses questions répétées en tant que source ouverte mais elle est toujours bonne
@Codaniac peut-être que c'est parce que je ne suis jamais allé sur le site avant, ou parce que je ne m'en suis pas inscrit, alors quelque chose ne se charge pas correctement, pas sûr
Oui, vous devez répondre à une simple question avant de vous inscrire que vous ne verrez plus cette chose
S'il vous plaît essayez-le! Je suis juste un codage d'apprentissage débutant pendant environ 3-4 mois et j'essaie de résoudre mes problèmes sur ce site parce que c'est un excellent!
Vous pouvez diviser pour arrondi sans utiliser p> n code> par
1/1 code>
math.round code>, j'ai utilisé
s=n=>(r=>(r-~~r<.5?0:1)- -~~r)(n/(1/n))
console.log(s(5));
console.log(s(4.4));
console.log(s(-4.44));
C'est le plus proche OMG, je viens de vous rappeler que nous pouvons utiliser des pouvoirs négatifs, mais le dernier problème est qu'il ne s'arrête pas au nombre entier le plus proche.
Comme déjà mentionné ci-dessus, nous ne devons utiliser aucune fonction mathématique pour arrondir le nombre au plus proche.
@Dazzler Il ne lance aucune erreur pour utiliser parseint code>
Si la limitation à 32 bits Numes n'est pas un problème ... s = n => (n / (1 / n)) | 0 code>
Vraiment de plus près mais qu'utilisant Paysint ne semble pas arrondir jusqu'à l'entière la plus proche. La réponse est toujours à l'autre. Exemple, attendu: 540533658, au lieu de: 540533657 quelque chose comme ça
Vous voudriez math.round code> alors
Nous ne pouvons pas utiliser Math.Round
Oups, désolé, je n'ai pas vu ça
@Dazzler mis à jour avec une alternative à math.round code>
@Adiga - J'ai enlevé mon commentaire mal pensé: P c'est beau code: p
@Adiga c'est parfait. Semble courir normalement mais il ne semble pas courir sur le site Web, mais je l'évaluerais toujours comme une réponse parfaite
il veut que le code soit de 39 caractères quand ce n'est que 41 caractères pour le code que vous avez écrit
@Dazzler Il a 39 caractères maintenant. Cela fonctionne pour moi
@Jaromandax Merci beaucoup, ne semble pas travailler pour moi encore probablement probablement à cause de mes erreurs, mais si vous l'avez bien compris, je vais probablement aller bien aussi!
Je ne comprends pas totalement comment cette arrondi fonctionne, mais je vais certainement essayer de les apprendre
@Dazzler Il est pris d'une autre réponse. Cliquez sur le lien la réponse
@Jaromandax Ces 2 caractères que vous avez enregistrés étaient cruciaux haha. (Le second ne fonctionnera pas car ne peut pas utiliser + code> signe)
Je suis si lent ce soir @Adiga: p
@Jaromandax J'ai essayé tout fait, mais je ne peux pas sembler résoudre le problème, car il dit que j'entraîne dans 40 caractères, également dans votre image, le nom de la fonction était s et non sq. Pour ma part, Il ne semble pas fonctionner du tout UGH
@DazzlerLa image a été posté par moi pas Jaromandax :) J'ai changé le nom de la fonction de SQ code> à
S code>
@Adiga Je veux me frapper la tête maintenant, j'ai tout lu sur l'alternative à Math.Floor sur une autre page Stackoverflow et celle que vous avez utilisée, mais je n'arrive tout simplement pas à le garder avec égale ou inférieure à 39 caractères du tout
@Dazzler mais ce code est exactement de 39 caractères. Exécutez "s = n => (r => (r- ~~ r <0,5? 0: 1) - - ~~ r) (N / (1 / N))". Longueur code> dans la console du navigateur.
@Adiga Si je devais retirer le double moins et ajouter le signe plus, il montrerait une erreur à nouveau pour moi parce que j'ai utilisé le signe plus mais je peux gérer le contrôle du nombre de caractères
@Adiga Le code est de 39 caractères mais le nom de la fonction est nécessaire pour être "carré" mais le vôtre est
Ce qui signifie que si j'ajoute un autre q pour leur donner leur nom de fonction satisfait, mon nombre de personnages serait de 40 ans et j'étais encore échouer. Mais d'une manière ou d'une autre, votre image semble fonctionner pendant que mon pas
@Dazzler Comme vous pouvez le constater dans la capture d'écran, j'ai modifié le nom sur S code> et modifié le nom de la fonction dans la section "Exemple de tests" également (aussi, veuillez arrêter de marquer Jaromandax lol. Cette capture d'écran était téléchargé par moi)
Oh mon Dieu, je suis vraiment si mutile, j'ai oublié de vérifier le test d'échantillon! C'est une nouvelle chose pour moi, très cruciale quand je résolvez ces types de katas d'une ligne
Merci beaucoup, maintenant le problème est entièrement résolu! @Adiga
@Adiga et je suis désolé de la balise pour Jaromanda, depuis que je suis nouveau sur ce site Web et c'est ma première question, j'ai eu du mal à savoir qui était qui était qui était
@Adiga OH BTW, cela fonctionne si je modifie le nom de la fonction dans le test de l'échantillon, puis de l'exécuter, mais cela ne fonctionnerait pas si je devais le tenter. Mais puisque je ne veux plus me déranger, je vais juste abandonner. Mais merci beaucoup pour votre aide! PS À travers cela, j'ai pu comprendre l'alternative de Math.floor Stackoverflow. com / questions / 44985811 / Alternative-for-Math-RO Und
@Dazzler ouais, je soupçonnai un peu ça. Ne pensaient pas qu'ils permettraient de changer le cas de test. Sinon, tout le monde serait affirmé si vrai équivaut vrai. Je vais essayer de sauver un personnage quand je suis libre.
Vous pouvez essayer cela aussi bien
p>
// Another method function multiplytwo(a) { return ("i").repeat(a).repeat(a).length } console.log(multiplytwo(4)) console.log(multiplytwo(25)) //creating a string âiâ and repeating it âaâ times, then repeats that âaâ times, and then returning the length.
Cela ne fonctionnerait pas car nous ne sommes censés accepter que 1 entrée au paramètre
Il ne semble pas fonctionner pour des chiffres comme 4.3 où il arrondira le nombre à 16 au lieu de 19
Nous ne pouvons pas utiliser aucun opérateur tel que *, + code> sont ces opérateurs les seuls interdits? Qu'est-ce qui est interdit exactement (ou, ce qui est autorisé)?
** 2 code> est, techniquement, pas le même que
* code> est-il autorisé?
semble mieux posé à Golf de code
@Mattellen C'est ma première fois sur Stackoverflow, donc je suis vraiment désolé pour les inconvénients si je suis arrivé à la mauvaise partie
Pas de soucis, pensais juste que vous pourriez trouver une foule plus réceptive là-bas
@ U25lywt5iejhc3rhcmqg désolé pour la réponse tardive, mais cela n'est pas autorisé aussi. Mais aucune inquiétude adiga n'a résolu le problème avec Jaromina quelque chose