Étant donné une entrée int n, imprimer n * inversé (n)


9

Étant donné un entier n, imprimezn * reversed(n)

reversed(n)est le numéro que vous obtenez lorsque vous reverseles chiffres de n.


reverse(512) = 215

reverse(1) = 1

reverse(101) = 101

>>>>>>>>

func(5) = 5*5 = 25

func(12) = 12*21 = 252

func(11) = 11*11 = 121

func(659) = 659*956 = 630004

Le code le plus court gagne!

Classement

code-golf  math  arithmetic  code-golf  math  integer  code-golf  arithmetic  integer  code-golf  sequence  base-conversion  palindrome  code-golf  math  primes  integer  code-golf  parsing  conversion  syntax  code-golf  sequence  primes  code-challenge  geometry  optimization  code-golf  graph-theory  code-golf  number-theory  primes  integer  code-golf  source-layout  cops-and-robbers  code-golf  source-layout  cops-and-robbers  code-golf  sequence  primes  integer  code-golf  math  number-theory  primes  rational-numbers  code-golf  math  sequence  number-theory  primes  code-golf  string  code-golf  math  combinatorics  permutations  restricted-complexity  code-golf  array-manipulation  code-golf  number  sequence  code-golf  number  sequence  code-golf  binary-matrix  code-golf  math  tips  javascript  algorithm  code-golf  string  code-golf  number  sequence  code-golf  math  arithmetic  parsing  code-golf  number  sequence  primes  code-golf  string  ascii-art  geometry  integer  code-golf  geometry  code-golf  number  array-manipulation  code-golf  math  geometry  code-golf  number  sequence  arithmetic  integer  code-golf  string  kolmogorov-complexity  code-golf  number  code-golf  number  chess  code-golf  sequence  decision-problem  subsequence  code-golf  math  number  primes  code-golf  primes  permutations  code-golf  integer  probability-theory  statistics  code-golf  string  code-golf  sequence  decision-problem  parsing  board-game  code-golf  binary  graph-theory  code-golf  board-game  classification  tic-tac-toe  code-golf  ascii-art  polyglot  code-golf  date  code-golf  geometry 

3
Quel est l'inverse de 100?
tsh

001, mais dans tous les cas, ça va si vous avez des zéros supplémentaires devant
K Split X

4
Pourquoi downvote? Parce que ce défi est trop trivial (par rapport à d'autres défis, il ne l'est pas!) Ou parce qu'il est mal formaté / peu clair?
user202729

2
@ user202729 J'ai voté contre parce que je n'ai pas vu ou anticipé beaucoup de variété ou de profondeur des réponses. Cette question est ennuyeuse, je l'ai essayée. Une partie de la raison pour laquelle il est ennuyeux est parce que c'est trivial, ce qui, à mon avis, est une raison parfaitement juste de voter en retour une question seule.
Ad Hoc Garf Hunter

Réponses:


10

05AB1E , 2 octets

R*

Essayez-le en ligne!

Dans 05AB1E, les entiers et les chaînes sont traités comme des types équivalents, donc inversal ( R) se convertit en chaîne et inverse, tandis que multiplication ( *) traite l'inverse et l'entrée comme des entiers.


4
Â*est également valable: D.
Urne de poulpe magique

4

JavaScript (SpiderMonkey) , 45 35 33 28 octets

n=>n*[...n].reverse().join``

Essayez-le en ligne!

  • Enregistré 2 octets grâce à Dennis
  • 8 octets enregistrés grâce à kamoroso94
  • Sauvegardé 2 octets grâce à ATaco
  • 5 octets enregistrés grâce à Shaggy

Bienvenue chez PPCG! Vous n'avez pas à compter f=; les fonctions anonymes sont autorisées par défaut.
Dennis

Changez (n+"").split("")pour [...(n+"")]économiser quelques octets. Vous n'avez pas besoin du plus unaire et les parenthèses autour de la chaîne inversée sont superflues. Dans l'ensemble, cela vous fait économiser 10 octets.
kamoroso94

Vous pouvez remplacer .join("")par .join``pour économiser 2 octets.
ATaco

Économisez 5 octets en prenant l'entrée sous forme de chaîne: tio.run/##BcFRCoAgDADQu/ilQYP6t4tEoNgMzTZxIXR6ey/…
Shaggy

4

Gelée , 3 octets

×ṚḌ

Je suis nouveau sur Jelly, alors s'il vous plaît, faites-moi savoir s'il existe un moyen de le faire en 1 ou 2 octets!

Essayez-le en ligne!

Explication

×ṚḌ    (Input: 12)

 Ṛ     Reversed decimal digits (Stack: [2, 1])
×      Multiply by input       (Stack: [24, 12])
  Ḍ    Convert to decimal      (Stack: 252)
       Implicit print

En fait, ce ṚḌ×serait une meilleure version. Bien sûr, cela fonctionnerait toujours, en raison du fonctionnement des bases.
Erik the Outgolfer

@EriktheOutgolfer J'ai écrit cela d'abord, mais ×j'ai déplacé le pour la fantaisie;)
JungHwan Min

4

Rubis, 25 24 octets

->n{n*eval(n.digits*'')}

Essayez-le en ligne! .

Integer#digits renvoie une liste de chiffres inversés, donc une inversion supplémentaire n'est pas nécessaire.

Merci à @ benj2240 d' avoir joué un octet!



@ benj2240 merci! :)
Yytsi

La route eval ne fonctionne pas réellement, car elle entraînera l'échec du programme sur 900 avec erreur Invalid octal digit (SyntaxError)au lieu de renvoyer le 8100 attendu ...
Value Ink


3

ARBLE , 12 octets

Prend l'entrée comme un int.

a*reverse(a)

Essayez-le en ligne!


C'est pourquoi j'ai dit entrée entière;), int fonctionne-t-il toujours?
K Split X

@KSplitX Oh, je ne l'ai pas remarqué. Je pense que cette restriction est un peu inutile, mais c'est à vous de décider.
ATaco

@KSplitX Fixed.
ATaco

Devrait utiliser n * reverse(n)pour qu'il corresponde mot à mot à la spécification de la question (étant donné un entier n, imprimez n * reversed(n))
Okx

3

Python 3, 35 28 octets

lambda m:m*int(str(m)[::-1])

Essayez-le en ligne!

Sauvegardé 7 octets en corrigeant un bug signalé par Dennis.


Non, c'est clair, vous convertissez en chaîne, l' [::-1]inverse, puis nous évaluons xD
K Split X

Cela ne fonctionne pas pour l'entrée 80 , tout comme 08un littéral non valide (octal).
Dennis

3
7 octets par Saved corriger un bogue ne vous aime pas juste quand cela arrive ...
ETHproductions



3

C # .NET, 55 octets

n=>{int i=n,j=0;for(;i>0;i/=10)j=j*10+i%10;return n*j;}

Explication:

Essayez-le ici.

n=>{           // Method with integer as both parameter and return-type
  int i=n,     //  Integer `i` (starting at the input)
      j=0;     //  Integer `j` (starting at 0)
  for(;i>0;    //  Loop as long as `i` is not 0
      i/=10)   //    After every iteration: Remove the last digit of `i`
    j=j*10     //   Add a trailing zero to `j`,
      +i%10;   //   and then sum this new `j` with the last digit of `i`
               //  End of loop (implicit / single-line body)
  return n*j;  //  Return the input multiplied with `j`
}              // End of method

2

Lot, 87 octets

@set s=%1
@set r=
:l
@set/ar=r*10+s%%10,s/=10
@if %s% gtr 0 goto l
@cmd/cset/a%1*r

Besoin de prendre la route arithmétique ici car l'inversion de chaîne échoue pour certains nombres tels que 80.


2

J, 7 octets

*|.&.":

Essayez-le en ligne!

Je ne pouvais pas penser à un moyen plus court, même si j'ai l'impression que c'est assez élégant.

Explication

*|.&.":
   &.":  Convert to string, apply next function, then undo conversion
 |.      Reverse
*        Multiply by input


2

LISP, 91 64 octets

(defun R (N) (defvar M (écriture dans la chaîne N)) (parse-integer (reverse M))) (write (* x (R x))))

(defun R(N)(write(* N(parse-integer(reverse(write-to-string N))))))

x N est votre entier avec lequel vous voulez travailler, bien sûr.

Je suis assez nouveau dans la programmation, mais j'ai trouvé qu'essayer ces problèmes de Code Golf était une bonne pratique. Y a-t-il quelque chose qui me manque qui pourrait aider à cela?

EDIT: Grâce à quelques conseils de plafondcat, j'ai pu raser quelques octets. Ancien programme conservé en barré pour référence.


Bienvenue chez Code Golf! Vous pouvez éliminer certains espaces et peut-être abandonner une affectation de variable. De plus, par convention, vous pourrez peut-être simplement renvoyer la sortie au lieu de(write ...)
plafondcat

Vous pouvez enregistrer un octet en utilisant un lambdaau lieu de defun. De plus, lisez des conseils pour jouer au golf dans Lisp
ceilingcat


2

Batch , 150 125 121 octets (bytes + 5? cmd/q)

set l=%1
set n=0
set r=
:L
call set t=%%l:~%n%,1%%%
set/an+=1
if [%t%] neq [] set r=%t%%r%&goto L
set/ar=%r%*%l%
echo %r%

25 octets enregistrés grâce à user202729 !

4 octets enregistrés grâce à Matheus Avellar !




N'est-ce pas ce lot, pas Bash? Le TIO pour bash ne fonctionne pas pour cela.
Justin Mariner

Oui oui ça l'est; désolé pour cela
Ephellon Dantzler

Vous pouvez en ligne que ifd'être à 121 octets: if [%t%] neq [] set r=%t%%r%&goto L. Cependant, je pense que vous devez inclure 1 octet pour le /Qdrapeau passé cmdafin qu'il s'exécute implicitement@echo off
Matheus Avellar

2

> <>, 41 39 octets

:&>:a%:}-\
/~\?)0:,a/
>l1-?\&*n;
\ +*a/

Comment ça fonctionne:

:&

Supposons que l'entrée a été envoyée à la pile ( https://codegolf.meta.stackexchange.com/a/8493/76025 ). Dupliquez-le et conservez-en une copie dans le registre.

   >:a%:}-\
   \?)0:,a/

Convertit cela en ses chiffres individuels, les laissant sur la pile.

/~
>l1-?\
\ +*a/

La valeur supérieure sera toujours un zéro en raison du processus de conversion de nombre en chiffre; déposez-le de la pile. Maintenant, alors que la longueur est> 1, multipliez le premier élément par dix et ajoutez-le à l'élément en dessous. Cela se traduit par le nombre inversé.

      &*n;

Multipliez le numéro d'origine par l'inverse, imprimez la réponse et arrêtez.



2

Ohm v2 , 2 octets

œΠ

Essayez-le en ligne!

Explication:

œΠ   Main wire, arguments: n

œ    Pushes [n, n.reverse]
 Π   Multiplies that array together
     Implicit output

2
reste au téléphone pendant 4 mois : P
K3v1n

Vous devez être mis en attente pendant longtemps pour qu'il n'y ait aucune explication
MilkyWay90

@ MilkyWay90 Nous avons tous été bloqués pendant un an et demi avant, non?
Nick Clifford

@NickClifford Nous n'avons pas tous
MilkyWay90




1

Casio-Basic (fx-CP400), 44 octets

ExpToStr n,a
StrInv a,a
Print n*strToExp(a)

Il n'y a pas de fonction intégrée pour inverser un entier, mais il y en a une pour inverser une chaîne.

ExpToStr n,atransforme n en chaîne et le stocke a, puis StrInv a,aécrase aavec la version inversée de lui-même. La dernière ligne se transforme aen nombre et s'imprime n*a.

43 octets pour le code, +1 pour entrer ndans la boîte de paramètres.


1

Japt, 2 octets

Prend l'entrée sous forme de chaîne, produit un entier.

*w

Essayez-le


Wow, je pensais que cela devrait être de 4 octets au moins ... Je suppose que ce n'est que 3 même si vous prenez l'entrée comme un entier*sw
ETHproductions

@ETHproductions: oui, c'est ce que j'avais à l'origine.
Shaggy

1

MATLAB / Octave , 33 31 octets

@(n)str2num(flip(int2str(n)))*n

Essayez-le en ligne!

Fonction anonyme Octave / MATLAB. Il s'agit d'une approche assez naïve - convertit l'entier en chaîne, retourne la chaîne, reconvertit le résultat en entier et le multiplie par l'original.


  • Économisez 2 octets en utilisant flipau lieu de fliplr.



1

PHP, 23 + 1 octets

<?=$argn*strrev($argn);

Enregistrer dans un fichier et exécuter en tant que pipe avec -nF.



1

MATL , 5 octets

VPUG*

Essayez-le en ligne!

Explication: Vconvertit en chaîne, Pretourne, Ureconvertit en numérique, Gcopie à nouveau l'entrée d'origine et les *multiplie ensemble.


1

Enchantements runiques , 11 10 octets

i:0qr͍n*@

Essayez-le en ligne!

Prend l'entrée, la duplique, contraint une copie à une chaîne, l'inverse, la contraint à revenir à une valeur numérique, multiplie et sort le résultat.

0qeffectue la contrainte sur une chaîne en concaténant un zéro à la fin. Il n'y a pas d' ToString()opérateur explicite , c'est donc la méthode la plus courte dans ce cas spécifique où le 0 échangé au début ne modifie pas la valeur numérique résultante. Merci à ASCII uniquement pour ce -1 octet.



@ ASCII uniquement Assez juste. Je finis par jouer avec la plupart d'entre eux au travail et ne revisite pas toujours quand je vais les poster à la maison.
Draco18 ne font plus confiance au SE
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.