Submission

Status:

[PPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: cyblox_boi

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

Language: cpp

Time: 0.002 second

Submitted On: 2025-10-16 15:07:48

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    string creditCardNumber;
    cin >> creditCardNumber;

    int lastCreditCardNumber = creditCardNumber[creditCardNumber.length() - 1] - '0';

    creditCardNumber.erase(creditCardNumber.begin() + (creditCardNumber.length() - 1));

    vector<int> numbers(creditCardNumber.length());

    for (int i = creditCardNumber.length() - 1, j = 0; i >= 0; i--, j++)
    {
        numbers[j] = creditCardNumber[i] - '0';

        if (j % 2 == 0)
        {
            numbers[j] *= 2;
        }
    }

    int sum = 0;

    for (const auto &i : numbers)
    {
        if (to_string(i).length() > 1)
        {
            string n = to_string(i);

            for (int i = 0; i < n.length(); i++)
            {
                sum += n[i] - '0';
            }
        }
        else
        {
            sum += i;
        }
    }

    if ((10 - (sum % 10)) % 10 == lastCreditCardNumber)
    {
        cout << "yes";
    }
    else
    {
        cout << "no";
    }

    cout << '\n';

    return 0;
}