Nous avons eu quelques défis pour la conversion de base, mais tous semblent s'appliquer aux valeurs entières. Faisons-le avec de vrais chiffres!
Le défi
Contributions:
- Un vrai nombre x positif , exprimé en base 10. Il peut être pris comme un flottant double précision ou comme une chaîne. Pour éviter les problèmes de précision, le nombre peut être supposé supérieur à 10 −6 et inférieur à 10 15 .
- Une base cible b . Ce sera un entier de 2 à 36.
- Un certain nombre de chiffres fractionnaires n . Ce sera un entier de 1 à 20.
Sortie: la représentation de x dans la base b avec n chiffres fractionnaires.
Lors du calcul de l'expression de sortie, les chiffres au-delà du n -ième doivent être tronqués (non arrondis). Par exemple, x = 3.141592653589793
dans la base b = 3
est 10.0102110122...
, donc pour n = 3
la sortie serait 10.010
(troncature), pas10.011
(arrondi).
Pour x et b qui produisent un nombre fini de chiffres dans la partie fractionnaire, la représentation infinie équivalente (tronquée à n chiffres) est également autorisée. Par exemple, 4.5
en décimal peut également être représenté par 4.49999...
.
Ne vous inquiétez pas des erreurs en virgule flottante .
Format d'entrée et de sortie
x sera donné sans zéros de tête. Si x se trouve être un entier, vous pouvez supposer qu'il sera donné avec une partie décimale nulle ( 3.0
), ou sans partie décimale (3
).
La sortie est flexible. Par exemple, cela peut être:
- Une chaîne représentant le nombre avec un séparateur approprié (point décimal) entre les parties entières et fractionnaires. Les chiffres
11
,12
etc. (pour b au-delà de 10) peuvent être représentés par des lettresA
,B
comme d'habitude, ou comme tout autre caractère distinct (veuillez préciser). - Une chaîne pour la partie entière et une autre chaîne pour la partie fractionnaire.
- Deux tableaux / listes, un pour chaque partie, contenant les nombres de
0
à35
sous forme de chiffres.
Les seules restrictions sont que les parties entières et fractionnaires peuvent être différenciées (séparateur approprié) et utiliser le même format (par exemple, non [5, 11]
pour la liste représentant la partie entière et['5', 'B']
pour la liste représentant la partie fractionnaire).
Règles supplémentaires
- Les programmes ou fonctions sont autorisés, dans n'importe quel langage de programmation . Les failles standard sont interdites.
- Le code le plus court en octets gagne.
Cas de test
La sortie est disponible en tant que chaîne de chiffres 0
, ..., 9
, A
, ..., Z
en utilisant .
comme séparateur décimal.
x, b, n -> output(s)
4.5, 10, 5 -> 4.50000 or 4.49999
42, 13, 1 -> 33.0 or 32.C
3.141592653589793, 3, 8 -> 10.01021101
3.141592653589793, 5, 10 -> 3.0323221430
1.234, 16, 12 -> 1.3BE76C8B4395
10.5, 2, 8 -> 1010.10000000 or 1010.01111111
10.5, 3, 8 -> 101.11111111
6.5817645, 20, 10 -> 6.BCE2680000 or 6.BCE267JJJJ
0.367879441171442, 25, 10 -> 0.94N2MGH7G8
12944892982609, 29, 9 -> PPCGROCKS.000000000
42, 13, 1
que nous pouvons avoir au 33
lieu de 33.0
?
n
des chiffres décimaux