Hướng dẫn giải của Khuyến mại (Đề HSG 9 Phú Thọ 2021-2022)
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
Số tiền thưởng bằng tổng các chữ số của mã N. Điểm mấu chốt là N có thể lên tới 10^20, vượt quá kiểu long long, nên ta đọc N dưới dạng xâu và cộng từng chữ số.
Sub 1: Tổng các chữ số (đọc N dưới dạng xâu) — ~O(\log N)~
Bài này chỉ có một công thức (tổng chữ số), không có cách vét cạn nào khác đáng kể nên chỉ viết một sub, là lời giải đầy đủ.
Kết quả chấm: đạt 24/24 test.
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
// N có thể lên tới 10^20 nên không lưu được vào long long: đọc N dưới dạng xâu chữ số
string n;
cin >> n;
long long tong = 0;
for (char c : n)
if (isdigit(c)) tong += c - '0'; // cộng từng chữ số
cout << tong << "\n";
return 0;
}
Bình luận