Hướng dẫn giải của [200 đề thầy Đức] Bài 149: Đếm số lần xuất hiện chữ số
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Hướng dẫn giải
Với mỗi bộ dữ liệu gồm dãy N số và một chữ số K, đếm xem chữ số K xuất hiện bao nhiêu lần trong tất cả các số của dãy.
Cách làm
Với mỗi số x trong dãy, lấy chữ số cuối bằng x % 10 và so sánh với K, sau đó bỏ chữ số cuối bằng x / 10. Lặp lại đến khi x = 0. Mỗi lần trùng K thì tăng biến dem.
Bẫy: số 0 vẫn có một chữ số 0, nên dùng vòng lặp do-while để luôn xét ít nhất một lần.
#include <bits/stdc++.h>
using namespace std;
int main() {
int t;
cin >> t;
while (t--) {
int n, k;
cin >> n >> k;
int dem = 0;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
// Tách từng chữ số của x.
// Dùng do-while để số 0 vẫn được tính là có 1 chữ số 0
do {
if (x % 10 == k) {
dem++;
}
x = x / 10;
} while (x > 0);
}
cout << dem << "\n";
}
return 0;
}
Bình luận