Submission
Status:
[PPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: usahana
Problemset: ตรวจบัตรเครดิต
Language: cpp
Time: 0.002 second
Submitted On: 2026-10-10 10:20:15
#include <bits/stdc++.h>
using namespace std;
vector<int> stringToVector(string numStr) {
vector<int> digits;
for (char c : numStr) {
digits.push_back(c - '0');
}
return digits;
}
int main() {
string numStr;
cin >> numStr;
vector<int> creditCard = stringToVector(numStr);
int last = creditCard.back();
creditCard.pop_back();
for (size_t i = 0; i < creditCard.size(); i++) {
if (i % 2 == 0) {
creditCard[i] *= 2;
}
}
vector<int> splitCard;
for (int num : creditCard) {
if (num >= 10) {
splitCard.push_back(num / 10);
splitCard.push_back(num % 10);
} else {
splitCard.push_back(num);
}
}
int sum = 0;
for (int num : splitCard) {
sum += num;
}
int checkDigit = (10 - (sum % 10)) % 10;
if (checkDigit == last) {
cout << "yes";
} else {
cout << "no";
}
return 0;
}