Module: (Python) Phép chia số nguyên và phần dư


Problem

8 /18


Hoán vị của các số

Theory Click to read/hide

Phép chia số nguyên và số dư

Nhu cầu áp dụng thao tác tính phần dư của phép chia có thể thấy được khi làm việc với các chữ số của một số. 
 
Nhiệm vụ
Một số có ba chữ số được cho. Hiển thị tất cả các chữ số của số này, bắt đầu bằng hàng đơn vị và nhận một số mới được tạo bằng cách hoán vị hàng đơn vị và hàng trăm.

Chúng ta luôn nghĩ về một số như một tổng thể, nhưng đừng quên rằng các số được tạo thành từ các chữ số. Làm cách nào để bạn chọn tất cả các chữ số của một số?
Trên thực tế, mọi thứ đều được giải quyết khá đơn giản, nếu bạn nhớ toán học. Và toán học cho chúng ta biết rằng bất kỳ số nào cũng có thể được phân tích thành tổng của các số hạng bằng chữ số.

Ví dụ: 365 = 3*100 + 6*10 + 5*1 .
Chúng tôi thấy rằng mỗi chữ số là một số nhân của thuật ngữ bit tương ứng. 

Chúng tôi sẽ trình bày cách chuyển từng chữ số của một số thành một biến riêng bằng cách sử dụng ví dụ về chia một cột cho số 10. Chúng tôi lấy số 10, bởi vì chúng tôi có một hệ thống số thập phân và theo đó, các thuật ngữ bit 1, 10, 100, v.v.

  

Phân tích hình, bạn có thể thấy rằng  e = n% 10 # phép toán n % 10 - tính chữ số cuối cùng của số n # (nghĩa là chữ số hàng đơn vị) 365 % 10 = 5 d = n // 10% 10 # thao tác n // 10 - giảm số đi 10 lần, # tức là loại bỏ chữ số cuối cùng của số (365 // 10 = 36), # bây giờ chúng ta có thể tính chữ số hàng chục, # áp dụng thao tác quen thuộc cho kết quả - # tính phần còn lại sau khi chia cho số 10, 36 % 10 = 6 s = n // 100 # để có chữ số hàng trăm, chỉ cần bỏ đi hai chữ số ở bên phải của số đó, # tức là hai lần chia cho 10 # (n // 10 // 10 hoặc bằng n // 100) 365 // 100 = 3
Có các chữ số của số được lưu trữ trong các biến, chúng ta có thể tạo bất kỳ số nào khác từ chúng bằng cách nhân chữ số mong muốn với các thừa số bit thích hợp (với 1, 10, 100, v.v.): 
Ví dụ: dòng bên dưới sẽ nhận một số mới từ số ban đầu n, với hàng trăm và hàng đơn vị được sắp xếp lại:
1) chữ số hàng đơn vị (được lưu trữ trong  e)  nhân với 100
2) chữ số hàng chục (được lưu trữ trong biến d)  nhân với 10
3) chúng ta có thể chỉ cần nhân chữ số hàng trăm với 1 hoặc chỉ cần lấy giá trị được lưu trữ trong biến s.
Sau đó, các giá trị từ các điểm 1, 2 và 3 chỉ cần được thêm vào và chúng tôi nhận được một số mới: n1 = e*100 + d*10 + s;
Chương trình hoàn chỉnh sẽ trông như thế này: n = int(đầu vào()) e = n% 10 d = n // 10% 10 s = n // 100 in(e, d, s, e*100 + d*10 + s)

Problem

Đầu vào
Một số tự nhiên có ba chữ số được nhập từ bàn phím.

Dấu ấn
Xuất ra tổng được phân tách bằng dấu cách của các chữ số của số đó và số mới được tạo bằng cách hoán vị hàng đơn vị và hàng chục trên một dòng.

 

Ví dụ
<đầu>
# Đầu vào Đầu ra
1 123 6 132