(C++) Phép chia số nguyên và phần dư


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

Trong học phần "Biểu thức số học" chúng ta đã nói về các tính năng của phép chia trong ngôn ngữ C++.
Nhớ lại rằng đối với dữ liệu số nguyên (kiểu int) có thể sử dụng hai phép chia.
/ - phép chia số nguyên, khi chúng ta loại bỏ phần phân số do phép chia.
% - phép tính phần còn lại của một phép chia.
 
Cần ghi nhớ!
Trong C và C++, kết quả của việc chia một số nguyên cho một số nguyên – nó luôn là một số nguyên,phần dư bị loại bỏ khi chia.
 

Ví dụ
int a,b; một = 10; b = 3; int c = a / b; // Trả lời: c = 3 int d = a%b; // Trả lời: d = 1
Các thao tác này rất quan trọng trong lập trình. Chúng cần được hiểu và sử dụng đúng cách. 

Thực hành, viết mã nhiều hơn và bạn sẽ thành công!

 

Tính các chữ số của một số

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ố đã cho. 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 nảy sinh đối với người mới bắt đầu là làm thế nào chia một số thành các chữ số cấu thành của nó.
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ố đó. 
Hãy chỉ ra cách chuyển từng chữ số của một số thành một biến riêng. Xem xét thủ tục phân chia  một cột của số 365 bởi 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 số hạng 1, 10, 100, v.v.).
  

Sau khi 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ố tận cùng của số n (nghĩa là chữ số hàng đơn vị)   // 365% 10 = 5 d = n/10%10; // hoạt động n / 10 - giảm số lượng 10 lần,   // nghĩa là loại bỏ chữ số cuối cùng của số (365/10 = 36), // bây giờ ta có thể tính chữ số hàng chục bằng cách áp dụng phép toán quen thuộc vào kết quả   // - tính số dư sau khi chia cho số 10, 36% 10 = 6 s = n/100; // để có chữ số hàng trăm, chỉ cần bỏ đi 2 chữ số bên phải là đủ   // tức là chia 10 hai lần (n / 10 /10 hoặc giống n / 100) 365/100 = 3
Sau khi nhận được tất cả các chữ số của số, chúng ta có thể tạo một số khác từ chúng bằng cách nhân chữ số mong muốn với chữ số tương ứng: & nbsp; 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ố đơn vị (được lưu trữ trong biến 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 đơn giản là 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 phải được thêm vào và chúng tôi nhận được một số mới: n1 = e * 100 + d * 10 + s; Toàn bộ chương trình sẽ như thế này:
  #includeiostream> sử dụng không gian tên std; chủ yếu() { int n, e, d, s; cin>> N; e = n % 10; d = n/10%10; s = n/100; cout << đ<< " " << đ<< " " << s<< " " << (e*100+d*10+s); }