Mọi người cứ nói với tôi rằng bình phương của một số là số nhân với chính nó. Điều này rõ ràng là sai. Cách chính xác để bình phương một số là biến nó thành một hình vuông, bằng cách xếp nó lên trên một số lần bằng số chữ số mà nó có, sau đó đọc tất cả các số từ hình vuông kết quả, theo cả hai chiều (từ trái sang phải) và theo chiều dọc (từ chỉ lên xuống), sau đó thêm chúng lại với nhau. Vì vậy, đối với số 123, trước tiên bạn tạo hình vuông:
123
123
123
Sau đó, bạn lấy tất cả các hàng và cột từ hình vuông và thêm chúng lại với nhau:
123+123+123+111+222+333
Mà cho chúng tôi một kết quả của 1035
.
Đối với các số âm, bạn xếp chồng bình thường (hãy nhớ rằng bạn chỉ đếm số chữ số , do đó, dấu âm không được bao gồm trong chiều dài), sau đó đọc các số ngang bình thường (có dấu âm), sau đó bỏ qua các dấu âm cho các số dọc. Vì vậy, đối với số -144
chúng ta có được hình vuông:
-144
-144
-144
Cái nào cho chúng ta -144-144-144+111+444+444
, cái nào bằng567
Đối với các số chỉ có một chữ số, hình vuông luôn bằng số nhân đôi (đọc một lần theo chiều ngang và một lần theo chiều dọc). Cho 4
chúng tôi
4
Cái nào cho ta 4+4
, cái nào bằng 8
.
Đối với các số có phần thập phân, hãy xếp chồng bình thường (hãy nhớ rằng chỉ các chữ số được tính theo số lần bạn xếp số và do đó, số thập phân không được tính) và bỏ qua các ký hiệu thập phân khi đọc các số dọc. Ví dụ, số 244.2
cho chúng ta
244.2
244.2
244.2
244.2
Cái nào cho ta 244.2+244.2+244.2+244.2+2222+4444+4444+2222
, cái nào bằng 14308.8
.
Số phân số hoặc số phức không thể bình phương.
Nhiệm vụ của bạn:
Tôi mệt mỏi với số bình phương theo cách của mình bằng tay, vì vậy tôi đã quyết định tự động hóa quy trình. Viết cho tôi một chương trình hoặc hàm lấy float hoặc chuỗi, tùy theo bạn thích, làm đầu vào và trả về kết quả bình phương theo cách của tôi.
Ví dụ:
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
Ghi điểm:
Tay tôi đang bị chuột rút khi viết ra tất cả các ô vuông đó và máy tính của tôi không hỗ trợ sao chép / dán, vì vậy, mục nhập có số lượng mã ít nhất để tôi nhập (được đo bằng byte vì lý do nào đó?) Sẽ thắng!
244.2
không phải là một số float. Nó không thể được chuyển đổi thành chuỗi "244.2"
.