Le persone continuano a dirmi che il quadrato di un numero è il numero moltiplicato per se stesso. Questo è ovviamente falso. Il modo corretto di quadrare un numero è di trasformarlo in un quadrato, impilandolo su se stesso un numero di volte uguale al numero di cifre che ha, e quindi leggendo tutti i numeri dal quadrato risultante, entrambi in orizzontale (da da sinistra a destra) e in verticale (solo da su a giù), quindi aggiungendoli insieme. Quindi, per il numero 123, devi prima creare il quadrato:
123
123
123
Quindi prendi tutte le righe e le colonne dal quadrato e le aggiungi insieme:
123+123+123+111+222+333
Il che ci dà un risultato di 1035.
Per i numeri negativi, si impila normalmente (ricordarsi di contare solo il numero di cifre , quindi il segno negativo non è incluso nella lunghezza), quindi leggere normalmente i numeri orizzontali (con segni negativi), quindi ignorare i segni negativi per i numeri verticali. Quindi, per il numero -144otteniamo il quadrato:
-144
-144
-144
Che ci dà -144-144-144+111+444+444, che è uguale567
Per i numeri con una sola cifra, il quadrato è sempre uguale al numero raddoppiato (letto una volta in orizzontale e una volta in verticale). Quindi 4ci dà
4
Che ci dà 4+4, che è uguale 8.
Per i numeri con parti decimali, impila normalmente (ricorda che vengono contate solo le cifre nel numero di volte in cui impili il numero e quindi il punto decimale non viene conteggiato) e ignora i simboli decimali quando leggi i numeri verticali. Ad esempio, il numero 244.2ci dà
244.2
244.2
244.2
244.2
Che ci dà 244.2+244.2+244.2+244.2+2222+4444+4444+2222, che è uguale 14308.8.
I numeri frazionari o complessi non possono essere quadrati.
Il tuo compito:
Sono stanco di quadrare i numeri a modo mio, quindi ho deciso di automatizzare il processo. Scrivimi un programma o una funzione che accetta un float o una stringa, come preferisci, come input e restituisce il risultato della quadratura a modo mio.
Esempi:
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
punteggio:
Le mie mani si stanno restringendo per la scrittura di tutti quei quadrati e il mio computer non supporta il copia / incolla, quindi vince la voce con il minor numero di codice da digitare (misurato in byte per qualche motivo?)!
244.2non è un numero float. Non può essere convertito nella stringa "244.2".