À l'école primaire, les enfants apprennent les fractions appropriées, où le numérateur est inférieur au dénominateur, et donc la valeur de la fraction est inférieure à un. Plus tard, ils apprennent les fractions où la valeur de la fraction est supérieure à un et deux façons différentes d'exprimer ces fractions: les fractions mixtes et les fractions impropres.
Étant donné une fraction mixte, déterminez si elle est équivalente à la fraction impropre où la valeur entière et le numérateur sont concaténés ensemble. Par exemple, pour la saisie 1 3/4
, la fraction incorrecte est 13/4
.
Cas de test
1 3/4 -> falsey
1 3/10 -> truthy
6 6/7 -> falsey
55 55/100 -> truthy
4 9/100 -> falsey
40 9/100 -> falsey
7 49/1000 -> falsey
9 1/2 -> falsey
999 999/1000 -> truthy
1 21/200 -> falsey
1 21/101 -> falsey
Pour l'entrée, vous pouvez prendre la partie entière et la partie fraction comme des entrées distinctes, mais vous ne pouvez pas prendre la fraction comme entrée en deux parties et vous ne pouvez pas la prendre comme une valeur décimale. Vous pouvez supprimer la partie entière (ne pas la prendre comme entrée) si vous n'avez pas besoin de l'utiliser.
54/100
simplifie27/50
55/100
peut également être simplifié11/20
, de sorte que la même question soulevée par @JoKing se pose là./
fait: /Réponses:
MATL , 7 octets
L'entrée est une chaîne. La sortie est
1
pour truey,0
pour falsey.Essayez-le en ligne! Ou vérifiez tous les cas de test .
Explication
la source
Perl 6 ,
1612 octetsEssayez-le en ligne!
Prend l'entrée comme une chaîne représentant la fraction. Il s'avère que le typage dynamique de Perl 6 peut gérer les chaînes en fractions rationnelles, qui savait? Ainsi, la chaîne
"1/10"
lorsqu'elle est contrainte à un nombre, renvoie0.1
Le bloc de code anonyme vérifie simplement si la fraction plus un est égale à une concaténée avec la fraction. Merci à la réponse Python de xnor pour m'avoir montré que la partie entière n'a pas d'importance.
Ancienne solution,
2726 octetsEssayez-le en ligne!
Prend l'entrée comme une fraction mixte rationnelle et renvoie vrai ou faux. Renvoie false pour le quatrième cas de test car il peut être simplifié.
Explication:
.nude
renvoie une liste de[numerator, denominator]
.la source
.nude
porte le nom de nu merator + de nominator, mais quelqu'un a probablement pris un grand plaisir à pouvoir l'appeler ainsi.'1 3/10'
{S/\s//==.words.sum}
Retina 0.8.2 ,
1716 octetsEssayez-le en ligne! Nécessite uniquement la partie fraction, de sorte que la suite de tests liée supprime l'entier des cas de test. Explication: La concaténation incorrecte est égale au nombre mixte uniquement si le dénominateur est une puissance de 10 et que le numérateur a un chiffre pour chaque zéro du dénominateur. Les groupes d'équilibrage de .NET sont utilisés pour vérifier qu'il existe suffisamment de chiffres. Edit: 1 octet enregistré grâce à @sundar.
la source
1 11/10
. Cela semble être un problème avec votre implémentation, pas avec la méthode^
place, donc ça n'aide pas./
rend sans ambiguïté ce que vous êtes correspondant, donc je ne pense pas que vous avez besoin de l'ancre là - bas ( en passant par les règles de correspondance habituels regex, aucune expertise Retina ici). Semble fonctionner quand même: essayez-le en ligne! .Husk , 8 octets
Essayez-le en ligne!
Explication
la source
Python 2 , 43 octets
Essayez-le en ligne!
la source
R ,
7865 octetsEssayez-le en ligne!
-13 octets grâce à Giuseppe et JayCe!
la source
sub
bien ici. En outre, vous pouvez utilisert=
au lieu detext=
Stax , 5 octets
Exécuter et déboguer
Explication:
la source
Python 3 , 26 octets
Essayez-le en ligne!
Par exemple, l'entrée
3/4
donne3/4+1==13/4
. Au lieu de prendre la partie entière de la fraction, nous la configurons simplement1
pour tester l'égalité de la fraction mixte. Cas de test de Chas Brown.la source
Brachylog , 15 octets
Essayez-le en ligne!
Prend la partie fractionnaire seule comme entrée de chaîne.
Utilise indirectement la même idée que ma réponse Julia - "le dénominateur est 10 ^ {longueur du numérateur}" peut être dit comme "le dénominateur est une puissance de dix, et la longueur du dénominateur est égale à la longueur du numérateur + la longueur de "/" (ie 1).
Ancienne réponse:
1520 octetsEssayez-le en ligne!
(-1 octet grâce à @Fatalize, mais malheureusement +6 octets depuis que j'ai découvert des bugs dans l'ancienne méthode.)
Même idée que ma réponse Julia .
la source
A
par la variable de sortie.
(et ainsi supprimer la dernièreA
car la variable de sortie est implicitement là à la fin)61/10
(en utilisant seulement 6 comme numérateur / préfixe)2/110
(en utilisant seulement 10 comme dénominateur / suffixe). J'ai essayé de le réparer, mais je ne sais pas si c'est la meilleure façon de le faire.Julia 0.6 , 29 octets
Essayez-le en ligne!
Basé sur l'idée que la sortie ne devrait être vraie que lorsque le dénominateur est une puissance de dix avec autant de zéros qu'il y a de chiffres dans le numérateur. Prend l'entrée comme un
Rational
type, vérifie que le dénominateur est égal à 10 élevé au nombre de chiffres du numérateur.la source
Nettoyer , 57 octets
Essayez-le en ligne!
Celui-ci est un peu plus court mais rompt pour les grands numérateurs / dénominateurs.
Propre ,
77616058 octets-1 grâce au conseil de l' OMᗺ sur mon autre réponse
Essayez-le en ligne!
Cela utilise la méthode de Neil , c'est un peu plus court que de le faire directement.
Il y a une astuce avec la surcharge de conversion, où se
1<+[48\\_<-:u]
convertit[Int]
en[Char]
puis en{#Char} (:== String)
, maisInt
directement enString
.Nettoyer ,
9189 octetsEssayez-le en ligne!
Définit une fonction
$ :: String String -> Bool
qui extrait le numérateur et le dénominateur, concatène en chaîne la partie entière et le numérateur et vérifie l'équivalence.la source
05AB1E , 7 octets
Prend uniquement les fractions en entrée.
Essayez-le en ligne ou vérifiez tous les cas de test .
Explication:
Ou une explication plus générale:
Nous devons valider deux choses:
1, 10, 100, 1000
, etc.)?PS: Si nous pouvions prendre le numérateur et le dénominateur comme des entrées séparées, à seulement 3 octets aurait été suffisant:
g°Q
.la source
JavaScript, 26 octets
Prend l'entrée dans currying syntax (
f(x)(y)
) oùx
est l'entier ety
est la fraction sous forme de chaîne.Essayez-le en ligne
la source
Java 10,
107706757 octetsBienvenue dans le monde sans
eval
..-40 octets en créant un port de réponse Python 2 @ChasBrown .
-10 octets grâce à @Shaggy (j'aurais dû mieux lire la réponse de @ChasBrown et son utilisation de
find
(indexOf
) ..)Essayez-le en ligne.
Explication:
la source
Haskell ,
4740 octets-7 grâce à OMᗺ
Essayez-le en ligne!
Un portage de ma réponse Clean utilisant la méthode de Neil.
la source
Perl 5 -p, 23 octets
Essayez-le en ligne!
Prend la partie fractionnaire seule comme entrée (comme autorisé par OP), sort 1 pour vrai et rien pour faux.
La partie décimale prise en elle-même ne serait exactement égale au numérateur que lorsque le dénominateur est la puissance immédiatement supérieure de dix supérieure au numérateur, qui est la condition que nous devons vérifier.
la source
Noether, 17 octets
Essayez-le en ligne!
Explication
la source
TeaScript , 25 octets
La première entrée est la fraction, la seconde est l'entier.
Je viens de commencer dans TeaScript donc ça pourrait être beaucoup joué
Essayez-le en ligne!
la source
R , 53 octets
Essayez-le en ligne!
Prend uniquement la partie fractionnaire en entrée. Comme mentionné par xnor dans un commentaire:
La réponse de Robert S. est moins golfique mais beaucoup plus intéressante que la mienne.
la source
C (gcc) ,
675655 octetsEssayez-le en ligne!
la source
r
? tio.run/…Excel, 52 octets
Ignore l'entrée entière. Fondamentalement:
IS Denominator = 10^LEN(Numerator)
Pour les dénominateurs limités à
<10^9
: 48 octets:La masse de la logique se divise
/
. Si l'entrée peut être prise séparément, 16 octets:la source
Elixir , 81 octets
Essayez-le en ligne!
Pourrait être en mesure d'aller quelque part avec
{n,"/"<>d}=Integer.parse b
, mais je ne sais pas comment.la source
2DFuck , 86 octets
Essayez-le en ligne!
Prend l'entrée sans partie entière.
la source
C (gcc / clang),
594947 octetsRéponse de Python 2 du Port de Chas Brown . Essayez-le en ligne ici .
Ignore la partie entière de l'entrée. Merci à Jonathan Frech d' avoir joué au golf 2 octets.
Non golfé:
la source
'/'
peut très probablement être47
.ForceLang,
8678 octetsla source