Chúng ta được cung cấp hai số A và B. Đồng thời cung cấp hai số START và END để xác định một dãy số. Ngói Ath có sơn trắng và gạch Bth có sơn đen. Nếu gạch được sơn cả hai màu đen và trắng thì nó sẽ chuyển sang màu xám. Mục tiêu là tìm tổng số ô màu xám.
Chúng tôi sẽ thực hiện việc này bằng cách chuyển ngang các số từ START đến END và đối với mỗi số, chúng tôi sẽ kiểm tra xem số đó có phải là bội số của cả A và B. Nếu có, hãy đếm số gia tăng.
Hãy cùng hiểu với các ví dụ.
Đầu vào
START=10 END=20 A=3 B=6
Đầu ra
Common multiples of A and B ( grey tiles ): 2
Giải thích
Numbers 12, 18 are multiples of 3 and 6.
Đầu vào
START=1 END=100 A=10 B=11
Đầu ra
Common multiples of A and B ( grey tiles ): 0
Giải thích
No common multiple of 10 and 11 in range.
Phương pháp tiếp cận được sử dụng trong chương trình dưới đây như sau
-
Chúng tôi lấy số nguyên START và END làm biến phạm vi.
-
Chúng tôi coi A và B là hai biến.
-
Hàm countGrey (int start, int end, int a, int b) nhận các biến phạm vi, a, b và trả về số bội số của a và b.
-
Lấy số lượng biến ban đầu là 0 cho những số như vậy.
-
Dải số theo chiều ngang bằng cách sử dụng vòng lặp for. i =start to i =end
-
Nếu tôi% a ==0 &&i% b ==0. Khi đó, ‘i’ là bội số của cả a và b.
-
Ở cuối tất cả các số vòng lặp sẽ có tổng số là bội số của ‘a’ và ‘b’
-
Trả về kết quả là số lượng.
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) //tile is grey { count++; } } return count; } int main(){ int START =10, END = 30; int A=4, B=3; cout <<"Common multiples of A and B ( grey tiles ): "<< countGrey(START,END, A, B); return 0; }
Đầu ra
Nếu chúng ta chạy đoạn mã trên, nó sẽ tạo ra kết quả sau -
Common multiples of A and B ( grey tiles ): 2