Люди постійно говорять мені, що площа числа - це число, помножене на себе. Це, очевидно, помилково. Правильний спосіб розподілити число - це перетворити його на квадрат, склавши його поверх себе в кілька разів, рівне кількості цифр, яке він має, а потім прочитавши всі числа з отриманого квадрата, як по горизонталі (від лише зліва направо) і вертикально (лише вгору), а потім додайте їх разом. Отже, для числа 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"
.