Les gens me disent que le carré d'un nombre est le nombre multiplié par lui-même. C'est évidemment faux. La bonne façon de mettre un nombre au carré est d'en faire un carré, en l'empilant au-dessus de lui-même un nombre de fois égal au nombre de chiffres qu'il a, puis en lisant tous les nombres du carré résultant, tous les deux horizontalement (à partir de de gauche à droite uniquement) et verticalement (de haut en bas uniquement), puis en les ajoutant ensemble. Donc, pour le nombre 123, vous créez d'abord le carré:
123
123
123
Ensuite, vous prenez toutes les lignes et colonnes du carré et les ajoutez ensemble:
123+123+123+111+222+333
Ce qui nous donne un résultat de 1035
.
Pour les nombres négatifs, vous empilez normalement (n'oubliez pas que vous ne comptez que le nombre de chiffres , donc le signe négatif n'est pas inclus dans la longueur), puis lisez les nombres horizontaux normalement (avec des signes négatifs), puis ignorez les signes négatifs pour les nombres verticaux. Donc, pour le nombre, -144
nous obtenons le carré:
-144
-144
-144
Ce qui nous donne -144-144-144+111+444+444
, ce qui équivaut567
Pour les nombres à un seul chiffre, le carré est toujours égal au nombre doublé (lu une fois horizontalement et une fois verticalement). Nous 4
donne donc
4
Ce qui nous donne 4+4
, ce qui est égal 8
.
Pour les nombres avec des parties décimales, empilez normalement (rappelez-vous que seuls les chiffres sont comptés dans le nombre de fois que vous empilez le nombre, et donc le point décimal n'est pas compté), et ignorez les symboles décimaux lors de la lecture des nombres verticaux. Par exemple, le nombre 244.2
nous donne
244.2
244.2
244.2
244.2
Ce qui nous donne 244.2+244.2+244.2+244.2+2222+4444+4444+2222
, ce qui est égal 14308.8
.
Les nombres fractionnaires ou complexes ne peuvent pas être mis au carré.
Ta tâche:
Je suis fatigué de quadriller les chiffres à la main, j'ai donc décidé d'automatiser le processus. Écrivez-moi un programme ou une fonction qui prend un flottant ou une chaîne, selon votre préférence, en entrée et renvoie le résultat de la mise au carré à ma façon.
Exemples:
123 -> 1035
388 -> 3273
9999 -> 79992
0 -> 0
8 -> 16
-6 -> 0
-25 -> 27
-144 -> 567
123.45 -> 167282.25
244.2 -> 14308.8
2 -> 4
-0.45 -> 997.65
0.45 -> 1000.35
Notation:
Mes mains sont à l'étroit en écrivant tous ces carrés, et mon ordinateur ne prend pas en charge le copier / coller, donc l'entrée avec le moins de code pour moi à taper (mesurée en octets pour une raison quelconque?) Gagne!
244.2
n'est pas un nombre flottant. Il ne peut pas être converti en chaîne "244.2"
.