วันพุธที่ 16 พฤศจิกายน พ.ศ. 2559
C++ check ISBN 10 digit
long long power(int p)//3,4
{
long long sum = 1;
for (int i = 1; i <= p; i++)
{
sum *= 10;
}
return sum;
}
int main()
{
system("cls");
long long m1[20];
long long m2[20];
long long m3[20];
long long sum = 0;
int l = 0, p = 0, n = 0;
string c;
string ch;
cout << "Input ISBN : ";
cin >> ch;
string i = ch.substr(0, 3);
string j = ch.substr(4, 3);
string k = ch.substr(8, 3);
l = stoll(i);
p = stoll(j);
n = stoll(k);
for (int i = 0; i < 3; i++)
{
m1[i] = n % (power(3 - i)) / (power(2 - i));
}
for (int i = 0; i<3; i++)
{
sum += m1[i] * (3 - i + 1);
}
///////////
for (int i = 0; i < 3; i++)
{
m2[i] = p % (power(3 - i)) / (power(2 - i));
}
sum += m2[0] * 7;
sum += m2[1] * 6;
sum += m2[2] * 5;
//////
for (int i = 0; i < 3; i++)
{
m3[i] = l % (power(3 - i)) / (power(2 - i));
}
sum += m3[0] * 10;
sum += m3[1] * 9;
sum += m3[2] * 8;
int mod = 11-(sum % 11);
if (mod == 10)
{
c = 'X';
}
else
{
c = to_string(mod);
}
cout << endl;
cout << ch << "-" << c << endl;
return 0;
}
สมัครสมาชิก:
ส่งความคิดเห็น (Atom)
ไม่มีความคิดเห็น:
แสดงความคิดเห็น