Hướng dẫn giải của [200 đề thầy Đức] Bài 111: Các số có tổng chữ số bằng nhau
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
Cần đếm các số có 4 chữ số (từ 1000 đến 9999) có tổng các chữ số bằng n. Chỉ có 9000 số nên thử trực tiếp từng số là đủ nhanh, chỉ viết 1 sub (lời giải đầy đủ). Đạt 21/21 test.
Sub 1: Duyệt mọi số 4 chữ số — ~O(9000 \cdot 4)~
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T;
cin >> T;
while (T--) {
int n;
cin >> n;
// Vet can: thu lan luot tat ca 9000 so co 4 chu so, tinh tong cac chu so
int cnt = 0;
for (int v = 1000; v <= 9999; v++) {
int s = 0, t = v;
while (t > 0) {
s += t % 10;
t /= 10;
}
if (s == n) cnt++;
}
cout << cnt << "\n";
}
return 0;
}
Bình luận