Submission

Status:

[PPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: cjqwerty

Problemset: ตรวจบัตรเครดิต

Language: cpp

Time: 0.003 second

Submitted On: 2025-09-30 20:31:34

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

int main() {
    string card;
    cin >> card;
    if (card.size() != 16) return 0;

    int checkDigit = card[15] - '0';

    string rev = card.substr(0, 15);
    reverse(rev.begin(), rev.end());

    int sum = 0;
    for (int i = 0; i < 15; i++) {
        int d = rev[i] - '0';
        if (i % 2 == 0) d *= 2;
        sum += d / 10 + d % 10;
    }

    int calc = (10 - (sum % 10)) % 10;

    if (calc == checkDigit) cout << "yes\n";
    else                     cout << "no\n";

    return 0;
}