Votre objectif est d'écrire du code qui produira la séquence décimale unique la plus courte pour la fraction d'entrée. Deux fractions avec le même dénominateur peuvent ne pas avoir la même sortie, bien qu'il soit possible que des fractions avec des dénominateurs différents aient la même représentation.
Prenez 2 entiers en entrée, le premier est le numérateur, le second est le dénominateur.
Par exemple:
n d output
----- ------
0 13: 0.00
1 13: 0.07
2 13: 0.1
3 13: 0.2
4 13: 0.30
5 13: 0.38
etc.
3/13
est la seule fraction avec un dénominateur de 13 qui commence par 0.2
, donc aucun autre chiffre n'est requis. 4/13
et les 5/13
deux commencent par 0.3
, donc un autre chiffre est nécessaire pour les distinguer.
Vous pouvez sortir des nombres supérieurs à -1 et inférieurs à 1 avec ou sans zéro avant le séparateur décimal, tant que la sortie est cohérente, c'est 0.5
-à- dire et .5
sont le même nombre et sont tous deux valides. Aucun autre zéro à gauche n'est autorisé. Les zéros de fin doivent être affichés s'ils sont nécessaires pour distinguer la sortie d'une autre valeur.
Vous ne pouvez arrondir aucun nombre à partir de zéro; ils doivent être tronqués. Il ne doit pas y avoir d'espaces de début ou de fin. Il peut éventuellement y avoir une seule nouvelle ligne de fin.
Plus de valeurs de test:
n d output
---------- ------
0 1: 0 (this 0 may not be removed because there's no decimal point)
5 1: 5
0 3: 0.0 (or .0)
4 3: 1.3
5 3: 1.6
10 8: 1.2
11 8: 1.3
12 8: 1.5
-496 -38: 13.05
458 -73: -6.27
70 106: 0.660 (or .660)
255 123: 2.07
256 -123: -2.081
-257 -123: 2.089
-258 123: -2.09
258 -152: -1.697
-259 152: -1.70
260 152: 1.710
272 195: 1.39
380 247: 1.538
455 -455: -1.000
-44 891: -0.049 (or -.049)
123 1234: 0.099 (or .099)
Dans chaque cas, la sortie et le dénominateur sont suffisants pour travailler de manière unique le numérateur.
la source
/b
eti
àp
ainsi vous pourriez aussi bien les code à l' intérieurp
lui - même et prendre un seul paramètre. De plus, la réponse est justen
pour que vous n'ayez pas à le calculer à nouveau. J'ai une version récursive ES6 basée sur cela à 86 octets seulement ...