人们不断告诉我,数字的平方就是数字乘以本身。这显然是错误的。对数字求平方的正确方法是将其堆叠成一个正方形,方法是将其堆叠在其顶部等于其位数的次数,然后从所得平方中读取所有数字,水平和垂直(仅从左到右)和垂直(从上到下),然后将它们加在一起。因此,对于数字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"
。