Submission
Status:
[PPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: KanemiyaKana
Problemset: ตรวจบัตรเครดิต
Language: cpp
Time: 0.002 second
Submitted On: 2026-09-25 12:08:56
#include <iostream>
#include <string>
using namespace std;
string identification(long long identificationnumber)
{
int total = 0;
string idenstringconditionaldoubled = "";
string idenstringreverse = "";
string idenstringcutlast = "";
string idenstring = to_string(identificationnumber);
for (int i = 0; i < idenstring.length() - 1; i++)
{
idenstringcutlast += idenstring[i];
}
for (int i = idenstringcutlast.length() - 1; i >= 0; i--)
{
idenstringreverse += idenstringcutlast[i];
}
for (int i = 0; i < idenstringreverse.length(); i++)
{
if (i % 2 == 0)
{
int tempvalue = idenstringreverse[i] - '0';
int assignedtemp = tempvalue * 2;
string tempadder = to_string(assignedtemp); // NEEDS TO CHANGE TO INT FIRST BEFORE ASSIGNING THEN CAN CHANGE BACK TO STRING BEFORE STORING (FIXED!)
idenstringconditionaldoubled += tempadder;
}
else
{
idenstringconditionaldoubled += idenstringreverse[i];
}
}
for (int i = 0; i < idenstringconditionaldoubled.length(); i++)
{
int digitvalue = idenstringconditionaldoubled[i] - '0';
total = total + digitvalue;
}
int firstmod = total % 10;
int secondmod = (10 - firstmod) % 10;
if (secondmod == (idenstring[15] - '0'))
{
return "yes";
}
else
{
return "no";
}
}
int main()
{
long long input;
cin >> input;
if (input > 9999999999999999 || input < 1000000000000000)
{
return 0;
}
else
{
string output = identification(input);
cout << output;
}
}