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


Problem

14 /16


Câu hỏi khó nhất cho người mới bắt đầu, hoặc các chữ số của một số

Theory Click to read/hide

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ố. 

Hãy phân tích nhiệm vụ sau:
Một số có ba chữ số được đưa ra. Hiển thị tất cả các chữ số của số này và nhận được một số mới được lập bằng cách hoán vị hàng đơn vị và hàng trăm

Câu hỏi khó nhất đối với người mới bắt đầu là làm thế nào để lấy và lấy các chữ số của nó từ 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 . Ta thấy rằng mỗi chữ số là cấp số nhân của chữ số tương ứng của số đó. 
Chúng tôi sẽ trình bày cách lấy từng chữ số của một số thành một biến riêng biệt, sử dụng ví dụ về chia các cột cho số 10. (Chúng tôi lấy số 10, vì chúng tôi có hệ thống số thập phân và theo đó, chúng tôi có các thuật ngữ chữ số 1, 10, 100, v.v.)

  

Phân tích hình, bạn có thể thấy rằng  e := n mod 10; // thao tác n mod 10 - tính chữ số cuối cùng của số n (nghĩa là đơn vị của số đó) 365 mod 10 = 5 d := n div 10 mod 10; // thao tác n div 10 - giảm số đi 10 lần, tức là loại bỏ chữ số cuối cùng của số (365 div 10 = 36), // bây giờ ta có thể tính số tròn chục bằng cách áp dụng phép toán quen thuộc vào kết quả - tính dư sau khi chia cho số 10, 36 mod 10 = 6 s := n div 100; // để có hàng trăm, chỉ cần loại bỏ hai chữ số bên phải của số đó, tức là chia hai lần cho 10 (n div 10 div10 hoặc tương tự như n div 100< /strong>) 365 div 100 = 3
Có các chữ số đã lưu của số, chúng ta có thể tạo bất kỳ số nào trong số chúng bằng cách nhân chữ số mong muốn với chữ số tương ứng: 
ví dụ: dòng bên dưới sẽ nhận được 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) số cũ (được lưu trữ trong biến e)  nhân với 100 
2) số cũ của 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 số cũ của 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 đó, chỉ cần thêm các giá trị từ các điểm 1, 2 và 3 và nhận được một số mới:

n1 := e * 100 + d * 10 + s;

Toàn bộ chương trình sẽ trông như thế này: var n, e, d, s: integer; bắt đầu đọc (n); e := n mod 10; d := n div 10 mod 10; s := n div 100; writeln(e, ' ', d, ' ', s, ' ', e * 100 + d * 10 + s); kết thúc.

Problem

Một số có ba chữ số được nhập từ bàn phím. 
Viết chương trình in khoảng trắng cách nhau trên một dòng:
tổng các chữ số của số và số mới được tạo thành bằng cách hoán vị hàng đơn vị và hàng chục