Ludzie powtarzają mi, że kwadrat liczby jest liczbą pomnożoną przez siebie. To oczywiście nieprawda. Prawidłowy sposób kwadratowania liczby polega na przekształceniu jej w kwadrat, umieszczając go na sobie kilka razy równą liczbie cyfr, które ma, a następnie odczytując wszystkie liczby z wynikowego kwadratu, zarówno poziomo (z tylko od lewej do prawej) i pionowo (tylko od góry do dołu), a następnie dodając je do siebie. Tak więc dla liczby 123 najpierw utworzysz kwadrat:
123
123
123
Następnie weź wszystkie wiersze i kolumny z kwadratu i dodaj je razem:
123+123+123+111+222+333
Co daje nam wynik 1035
.
W przypadku liczb ujemnych układasz normalnie (pamiętaj, że liczysz tylko liczbę cyfr , więc znak ujemny nie jest uwzględniany w długości), a następnie odczytujesz liczby poziome normalnie (ze znakami ujemnymi), a następnie ignorujesz znaki ujemne dla liczby pionowe. Tak więc dla liczby -144
otrzymujemy kwadrat:
-144
-144
-144
Co daje nam -144-144-144+111+444+444
, co równa się567
W przypadku liczb zawierających tylko jedną cyfrę kwadrat jest zawsze równy podwojonej liczbie (odczytany raz poziomo i raz pionowo). Więc 4
daje nam
4
Co daje nam 4+4
, co równa się 8
.
W przypadku liczb z częściami dziesiętnymi stos należy układać normalnie (pamiętaj, że tylko liczby są liczone przy liczbie stosów, a zatem przecinek dziesiętny nie jest liczony) i ignoruj symbole dziesiętne podczas czytania liczb pionowych. Na przykład liczba 244.2
daje nam
244.2
244.2
244.2
244.2
Co daje nam 244.2+244.2+244.2+244.2+2222+4444+4444+2222
, co równa się 14308.8
.
Liczby ułamkowe lub zespolone nie mogą być podniesione do kwadratu.
Twoje zadanie:
Mam dość ręcznego zwiększania liczby do siebie, więc postanowiłem zautomatyzować ten proces. Napisz do mnie program lub funkcję, która pobiera liczbę zmiennoprzecinkową lub łańcuch, w zależności od tego, co wolisz, jako dane wejściowe i zwraca wynik ułożenia kwadratu po mojej stronie.
Przykłady:
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
Punktacja:
Moje ręce są ciasne od wypisywania tych wszystkich kwadratów, a mój komputer nie obsługuje kopiowania / wklejania, więc wygrywa wpis z najmniejszą ilością kodu (z jakiegoś powodu w bajtach?)!
244.2
nie jest liczbą zmiennoprzecinkową. Nie można go przekonwertować na ciąg "244.2"
.