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.

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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.