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.141592653589793dans la base b = 3est 10.0102110122..., donc pour n = 3la 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.5en 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,12etc. (pour b au-delà de 10) peuvent être représentés par des lettresA,Bcomme 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à35sous 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, ..., Zen 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, 1que nous pouvons avoir au 33lieu de 33.0?
ndes chiffres décimaux