Люди продолжают говорить мне, что квадрат числа - это число, умноженное на себя. Это очевидно ложно. Правильный способ возвести число в квадрат - превратить его в квадрат, сложив его поверх себя число раз, равное количеству цифр, которое он имеет, а затем считав все числа из результирующего квадрата, оба по горизонтали (из только слева направо) и по вертикали (только сверху вниз), а затем складывают их вместе. Итак, для числа 123 вы сначала создаете квадрат:
123
123
123
Затем вы берете все строки и столбцы из квадрата и складываете их вместе:
123+123+123+111+222+333
Что дает нам результат 1035
.
Для отрицательных чисел вы обычно складываете (помните, что вы учитываете только количество цифр , поэтому отрицательный знак не включается в длину), а затем считываете горизонтальные числа в обычном порядке (с отрицательными знаками), а затем игнорируете отрицательные знаки для вертикальные числа. Итак, за число -144
получаем квадрат:
-144
-144
-144
Что дает нам -144-144-144+111+444+444
, что равно567
Для чисел, состоящих только из одной цифры, квадрат всегда равен удвоенному числу (читается один раз по горизонтали и один раз по вертикали). Так 4
дает нам
4
Что дает нам 4+4
, что равно 8
.
Для чисел с десятичными частями сложите как обычно (помните, что количество раз, которое вы сложите , считаются только цифры , и, следовательно, десятичная точка не считается), и игнорируйте десятичные символы при чтении вертикальных чисел. Например, номер 244.2
дает нам
244.2
244.2
244.2
244.2
Что дает нам 244.2+244.2+244.2+244.2+2222+4444+4444+2222
, что равно 14308.8
.
Дробные или комплексные числа не могут быть возведены в квадрат.
Твое задание:
Я устал от квадратов чисел, поэтому решил автоматизировать процесс. Напишите мне программу или функцию, которая принимает плавающее число или строку, в зависимости от того, что вы предпочитаете, в качестве входных данных и возвращает результат ее возведения в квадрат.
Примеры:
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
Подсчет очков:
Мои руки становятся тесными от записи всех этих квадратов, и мой компьютер не поддерживает копирование / вставку, поэтому запись с наименьшим количеством кода, который я могу напечатать (измеряется в байтах по какой-то причине?), Выигрывает!
244.2
это не число с плавающей точкой. Он не может быть преобразован в строку "244.2"
.