Bạn có thể nhân các ký tự trong python không?

Vấn đề này yêu cầu chúng ta viết một hàm có tên là

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
05 chấp nhận hai số nguyên không âm –
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07 – được biểu diễn dưới dạng chuỗi. Hàm sẽ trả về tích của
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07, cũng được biểu diễn dưới dạng một chuỗi

Ví dụ,

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
0 sẽ trả về
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
1 [vì 2*3 = 6]

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
2 sẽ trả về
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
3 [như 123*45 = 5535]

Thách thức đối với vấn đề này là bạn không được phép chuyển đổi đầu vào thành số nguyên trực tiếp. Chẳng hạn, nếu đầu vào là

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
4 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
5, bạn không được phép chuyển đổi chúng trực tiếp thành 123 và 45

Cách tiếp cận được đề xuất

Để giải quyết vấn đề Nhân chuỗi, chúng tôi sẽ chuyển đổi các chữ số riêng lẻ [trái ngược với toàn bộ đầu vào] trong

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07 thành .

Ví dụ: nếu

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
8, chúng tôi sẽ chuyển đổi
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
9 thành 1,
result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
0 thành 2, v.v. Sau đó, chúng tôi sẽ nhân mỗi chữ số trong
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 với một chữ số khác trong
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07 và thêm sản phẩm vào kết quả của chúng tôi

Cách tiếp cận có thể được chia thành các bước sau;

Bước 1
Khai báo một danh sách có tên là

result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 với độ dài là
result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
4. Khởi tạo tất cả các phần tử trong
result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 thành 0.

Bước 2
Lặp qua

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07, bắt đầu từ phải sang trái. Chuyển đổi mỗi chữ số thành một số nguyên và nhân mỗi chữ số trong
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 [ký hiệu là
result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
9] với mỗi chữ số trong
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07 [ký hiệu là
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
31].

Bước 2a
Đối với mỗi

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
32 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
33, hãy thêm
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
34 vào
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
35

Bước 2b
Tính đến mọi khoản chuyển sang nếu sản phẩm ở Bước 2a lớn hơn 9

Bước 3
Sau khi lặp qua tất cả các chữ số trong

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07, hãy chuyển đổi
result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 trở lại thành chuỗi

Bước 4
Trả về chuỗi kết quả

Thí dụ

Hãy sử dụng một ví dụ để minh họa cách phương pháp này hoạt động đối với vấn đề Nhân chuỗi

Giả sử

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
8 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
00

Bước 1. Khai báo một danh sách được gọi là kết quả

Trước tiên, chúng tôi sẽ khai báo một danh sách có tên là

result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3, với độ dài là 5 và giá trị ban đầu là 0 cho tất cả các phần tử của nó. Nói cách khác,
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
02

Độ dài của

result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 phải là 5 vì tích của số có 3 chữ số với số có 2 chữ số sẽ có nhiều nhất là 5 chữ số. Điều này là do số lớn nhất có 3 chữ số [999] nhân với số lớn nhất có 2 chữ số [99] cho ta 99,999 [có 5 chữ số]

Bước 2. Lặp qua num1 và num2

Tiếp theo, chúng tôi sẽ lặp qua

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07, bắt đầu từ bên phải [i. e. chữ số cuối cùng, với chỉ số -1] sang trái

lặp lại 1

Ở lần lặp đầu tiên, chúng tôi sẽ chuyển đổi

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07 thành số nguyên và nhân chúng với nhau. Điều này mang lại cho chúng tôi 3 * 5 = 15. Chúng tôi sẽ thêm giá trị này vào
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
08 =
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
09

result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 trở thành
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
051

Vì 15 lớn hơn 9, chúng tôi sẽ thêm phần chuyển sang

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
052 và cập nhật
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
09

result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 trở thành
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
055

lặp lại 2

Tiếp theo, chúng tôi nhân các số nguyên của

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
057. Điều này mang lại cho chúng tôi 3 * 4 = 12. Sẽ thêm giá trị này vào ________ 1058 = ________ 1052

result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 trở thành
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
061

Vì 13 lớn hơn 9, chúng tôi sẽ thêm phần chuyển sang

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
062 và cập nhật
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
052

result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 trở thành
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
065

Chúng tôi tiếp tục lặp qua các chữ số trong

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07 cho đến khi hoàn thành tất cả các chữ số

Bước 3. Chuyển đổi kết quả trở lại một chuỗi

Sau khi lặp qua tất cả các chữ số trong

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07,
result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 lưu trữ các chữ số cho tích của 123 và 45. Nói cách khác,

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
071

Chúng tôi sẽ chuyển đổi danh sách này thành chuỗi

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
3

Bước 4. Trả về chuỗi kết quả

Cuối cùng, chúng tôi trả về chuỗi

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
3

Giải thích cho Bước 2a

Trong tất cả các bước trên, Bước 2a là khó hiểu nhất

Để hiểu cách thức hoạt động của bước này, hãy xem các bước lặp lại cho

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
8 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
00, như thể hiện trong sơ đồ bên dưới

ví dụ 1

Chúng tôi sẽ sử dụng lần lặp 4 để minh họa. Ở đây, ta nhân chữ số hàng chục [10] trong

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 với chữ số hàng chục [10] trong
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07. Vì 10 × 10 = 100, kết quả của phép nhân phải ở hàng trăm

Đặc biệt,

______1078

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
079

Sau khi chúng tôi chuyển đổi

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
060 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
057 thành số nguyên và nhân chúng, chúng tôi nhận được 2 * 4 = 8

result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
0 trong
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 là viết tắt của 20
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
064 trong
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07 là viết tắt của 40.

Vì 20*40 = 800, tích 8 mà chúng ta nhận được bằng cách nhân các số nguyên của

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
060 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
057 thực ra là 800. Do đó, ta thêm 8 vào chữ số hàng trăm [i. e. ô màu xanh] cho
result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3

ví dụ 2

Tiếp theo, hãy xem xét một ví dụ khác. Chúng tôi sẽ sử dụng lần lặp 6 để minh họa lần này

Ở đây, ta nhân chữ số hàng trăm [100] của

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 với chữ số hàng chục [10] của
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07. Vì 100×10 = 1000 nên kết quả của phép nhân phải được cộng với chữ số hàng nghìn trong
result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3. Do đó, ta thêm 5 vào chữ số hàng nghìn [ô màu xanh] trong
result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3

Logic tương tự áp dụng cho tất cả các lần lặp lại khác

Lấy chỉ số cho kết quả

Phần khó khăn trong giải pháp được đề xuất của chúng tôi là tìm ra chỉ số chính xác cho

result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 để thêm tích của
result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
9 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
31 vào

Điều này có thể được thực hiện thông qua quan sát

Nếu bạn nghiên cứu tất cả các phép lặp ở trên, có lẽ bạn sẽ nhận thấy rằng nói chung, khi chúng ta nhân

result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
9 với
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
31, chỉ số chính xác của
result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 được cho bởi công thức
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
079

Chẳng hạn, đối với lần lặp 4,

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
00 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
01. Chúng tôi thêm tích của
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
060 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
057 vào chỉ mục -3 trong
result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3

-3 có thể được tìm thấy bằng cách sử dụng [-2] + [-2] + 1

Đối với lần lặp 6, chúng tôi thêm

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
05 vào
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06

-4 có thể được tìm thấy bằng cách sử dụng [-3] + [-2] + 1

Điều tương tự áp dụng cho tất cả các lần lặp lại khác. Bạn có thể tự mình thử để kiểm chứng

Dựa trên lời giải thích và mô tả ở trên, hãy thử tự mình thực hiện thử thách này

Cách tiếp cận được mô tả ở trên để giải bài toán Nhân chuỗi được tóm tắt trong hình minh họa bên dưới

đồ họa minh họa

giải pháp đề xuất

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
4

Trong giải pháp được đề xuất ở trên, trước tiên chúng tôi khai báo một từ điển có tên là

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07. Từ điển này ánh xạ một chuỗi một chữ số thành một số nguyên. Chẳng hạn,
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
08 cho chúng ta số nguyên 0,
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
09 cho chúng ta 1, v.v. Chúng tôi sẽ sử dụng từ điển này để chuyển đổi các chữ số trong chuỗi đầu vào của chúng tôi thành số nguyên sau

Tiếp theo, chúng ta khai báo một danh sách có tên là

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
10. Danh sách này bao gồm các phần tử chuỗi tương ứng với các chỉ mục của chúng. Chẳng hạn,
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
11 cung cấp cho chúng tôi chuỗi
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
12,
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
13 cung cấp cho chúng tôi
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
9, v.v. Chúng tôi sẽ sử dụng danh sách này để chuyển đổi số nguyên một chữ số trở lại chuỗi

Bước 1

Ở dòng 7, chúng ta khai báo và khởi tạo

result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3

Tiếp theo, chúng tôi khai báo một biến có tên là

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
16 sẽ được sử dụng để lưu trữ kết quả phép nhân của chúng tôi dưới dạng một chuỗi

Bước 2

Từ dòng 11 đến dòng 19, chúng ta lặp qua

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07 từ phải sang trái bằng hai vòng lặp
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
19

Bước 2a

Bên trong vòng lặp

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
19 bên trong, chúng tôi sử dụng từ điển
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07 để chuyển đổi
result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
9 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
31 thành số nguyên. Tiếp theo, chúng tôi nhân hai số nguyên và thêm sản phẩm vào
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
35 trên dòng 15

Bước 2b

Trên các dòng 18 và 19, chúng tôi thực hiện hai phép toán để tính toán bất kỳ khoản chuyển

Giả sử

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
25,
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
00 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
27, chúng ta cần chuyển sang cho
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
052

Trên dòng 18,

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8

result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 trở thành
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
30

Trên dòng 19,

________số 8

Kết quả là,

result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 được cập nhật từ
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
32 thành
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
33. Điều này cho thấy một ví dụ về cách chuyển sang được thực hiện

Mặt khác, giả sử

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
34, chúng tôi không cần thực hiện bất kỳ chuyển đổi nào. Dòng 18 và 19 sẽ không có hiệu lực đối với
result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 nếu tất cả các phần tử trong
result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 đều nhỏ hơn 10

Giả sử,

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
37 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
27,

Trên đường 18

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
3

Trên dòng 19

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
0

result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 vẫn là
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
40 sau dòng 18 và 19. Đó là, không chuyển nhượng được thực hiện

Bước 3

Sau khi lặp qua tất cả các chữ số trong

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07 và hoàn thành bước 2a và 2b,
result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 lưu các chữ số của tích của
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
06 và
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
07

Từ dòng 22 đến 25, chúng tôi chuyển đổi

result[i+j+1] %= 10

becomes

result[-2]
= result[-2] % 10
= 13 % 10
= 3
3 trở lại chuỗi. Chúng tôi làm điều đó bằng cách sử dụng danh sách
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
10 để chuyển đổi từng chữ số thành một chuỗi và nối kết quả vào một biến có tên là
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
16 [trên dòng 23]

Tiếp theo, chúng tôi sử dụng hàm Python tích hợp sẵn

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
49 để xóa mọi
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
12 hàng đầu khỏi
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
16. Chẳng hạn, nếu
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
071,

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
53

Dòng 25 loại bỏ

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
12 ở đầu và gán kết quả
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
3 trở lại cho
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
16

Bước 4

Trên dòng 28, chúng tôi trả về giá trị của

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
16

Tuy nhiên, trước khi chúng tôi làm điều đó, trước tiên chúng tôi kiểm tra xem

result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
16 có phải là một chuỗi rỗng không. Nếu đúng như vậy, chúng tôi sẽ trả lại
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
12. Khác, chúng tôi trở lại
result[i+j] += result[i+j+1] // 10

becomes

result[-3]
= result[-3] + [result[-2] // 10]
= result[-3] + [13//10]
= result[-3] + 1
= 8
16

Bạn có thể nhân một biến trong Python không?

Phép nhân trong Python được thực hiện bởi toán tử [ * ] , sau đó kết quả được lưu vào biến sản phẩm và được in ra bằng định dạng chuỗi.

Bạn có thể nhân một chuỗi với một số trong Python không?

Khi bạn nhân một chuỗi với một số nguyên, Python sẽ trả về một chuỗi mới . Chuỗi mới này là chuỗi ban đầu, được lặp lại X số lần [trong đó X là giá trị của số nguyên].

Chủ Đề