Trong bài toán này, cho một mảng. Nhiệm vụ kiểm tra xem số tạo ra từ tất cả chữ số của các phần tử mảng có chia hết cho 3 không. Nếu có in "Yes", không thì "No".
Ví dụ minh họa
Đầu vào - arr = {3, 5, 91}
Kết quả - YES
Giải thích - Số 5193 chia hết cho 3. Vì vậy trả lời YES.
Để giải bài toán, kiểm tra tính chia hết cho 3.
Quy tắc chia hết cho 3 - Số chia hết cho 3 nếu tổng các chữ số của nó chia hết cho 3.
Tính tổng tất cả phần tử mảng. Nếu tổng chia hết cho 3, in YES, ngược lại NO.
Chương trình minh họa
#include <iostream>
using namespace std;
bool is3DivisibleArray(int arr[]) {
int n = sizeof(arr) / sizeof(arr[0]);
int rem = 0;
for (int i = 0; i < n; i++)
rem = (rem + arr[i]) % 3;
return (rem == 0);
}
int main() {
int arr[] = { 23, 64, 87, 12, 9 };
cout << "Tạo số từ chữ số mảng chia hết cho 3 ";
is3DivisibleArray(arr) ? cout << "có thể" : cout << "không thể";
return 0;
}
Kết quả
Tạo số từ chữ số mảng chia hết cho 3 có thể