Hướng dẫn giải của Cặp số may mắn (THCS KS1)


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

Cho ba số a, b, c (a, b ≤ 10^9, c ≤ 9). Lấy chữ số cuối của a + b. Nếu chữ số đó chia hết cho c thì in chính chữ số đó (cặp may mắn), ngược lại in phần dư của nó khi chia cho c.

Sub 1: Vét cạn, trừ lặp — ~O(d)~

Tìm chữ số cuối d của tổng rồi trừ liên tiếp c cho tới khi số còn lại nhỏ hơn c. Số còn lại chính là phần dư. Cách này đúng nhưng chậm hơn phép chia lấy dư khi d lớn (d ≤ 9 nên thực tế vẫn nhanh).

Kết quả chấm: 50/50 (SUB ok 50/50, TLE 0, WA 0)

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    long long a, b, c;
    cin >> a >> b >> c;
    // Chu so cuoi cung cua tong
    long long cuoi = (a + b) % 10;
    // Vet can: tru lien tiep c tu chu so cuoi cho den khi nho hon c (tim phan du)
    long long r = cuoi;
    while (r >= c) r -= c;
    // Neu r == 0 thi chu so cuoi chia het cho c: la cap may man
    if (r == 0) cout << cuoi << "\n";
    else cout << r << "\n";
    return 0;
}
Sub 2: Dùng phép chia lấy dư — ~O(1)~

Chữ số cuối là (a + b) % 10. Nếu chữ số này % c == 0 thì in chữ số cuối, ngược lại in (chữ số cuối) % c.

Bẫy: a + b có thể vượt 2·10^9 nên dùng long long. Chữ số cuối có thể là 0, khi đó 0 chia hết cho mọi c nên in 0.

Kết quả chấm: 50/50

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    long long a, b, c;
    cin >> a >> b >> c;
    long long cuoi = (a + b) % 10;   // chu so cuoi cung cua tong
    // Neu chu so cuoi chia het cho c thi la cap may man: in chu so cuoi
    // Nguoc lai in phan du cua chu so cuoi khi chia cho c
    if (cuoi % c == 0) cout << cuoi << "\n";
    else cout << cuoi % c << "\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.