Cho hai số A và B. Cũng cung cấp hai số START và END xác định một khoảng số. Ô thứ A được sơn trắng, ô thứ B được sơn đen. Nếu ô được sơn cả trắng và đen thì nó chuyển thành xám. Mục tiêu là tìm tổng số ô xám.
Ta thực hiện bằng cách duyệt số từ START đến END và với mỗi số kiểm tra xem số đó có phải bội của cả A và B không. Nếu có tăng count.
Hãy hiểu qua các ví dụ.
Đầu vào
START=10 END=20 A=3 B=6
Đầu ra
Bội chung của A và B (ô xám): 2
Giải thích
Các số 12, 18 là bội của 3 và 6.
Đầu vào
START=1 END=100 A=10 B=11
Đầu ra
Bội chung của A và B (ô xám): 0
Giải thích
Không có bội chung của 10 và 11 trong khoảng.
Phương pháp sử dụng trong chương trình dưới đây
- Nhận số nguyên START và END làm biến phạm vi.
- Nhận A và B là hai biến.
- Hàm
countGrey(int start, int end, int a, int b)nhận biến phạm vi, a, b và trả về số bội của a và b. - Khởi tạo biến count = 0 cho các số như vậy.
- Duyệt khoảng số bằng vòng lặp for. i=start đến i=end.
- Nếu i%a==0 && i%b==0. Thì 'i' là bội của cả a và b.
- Sau tất cả vòng lặp count chứa tổng số là bội của 'a' và 'b'.
- Trả về count làm kết quả.
Ví dụ
#include <bits/stdc++.h>
using namespace std;
int countGrey(int start, int end, int a, int b) {
int count = 0;
for (int i = start; i <= end; i++) {
if(i % a == 0 && i % b == 0) // ô là xám
count++;
}
return count;
}
int main() {
int START = 10, END = 30;
int A = 4, B = 3;
cout << "Bội chung của A và B (ô xám): " << countGrey(START, END, A, B);
return 0;
}
Đầu ra
Nếu chạy mã trên sẽ cho kết quả sau:
Bội chung của A và B (ô xám): 2