From e99361f6dd326f7dfd18c364e148cfae81bb9dd5 Mon Sep 17 00:00:00 2001 From: Rushiraj Kudapane Date: Mon, 31 Oct 2022 17:57:19 +0530 Subject: [PATCH] first commit --- cc_validator.cpp | 64 +++++++++++++++++++++++++++++++++++++++++++++++ cc_validator.exe | Bin 0 -> 55997 bytes 2 files changed, 64 insertions(+) create mode 100644 cc_validator.cpp create mode 100644 cc_validator.exe diff --git a/cc_validator.cpp b/cc_validator.cpp new file mode 100644 index 0000000..1dcafc7 --- /dev/null +++ b/cc_validator.cpp @@ -0,0 +1,64 @@ +#include +#include +#include + +using namespace std; + +bool isNumberString(const string &s) +{ + int len = s.length(); + for (int i = 0; i < len; i++) + { + if (s[i] < '0' || s[i] > '9') + return false; + } + return true; +} + +int main() +{ + string ccNumber; + + cout << "This program uses the Luhn Algorigthm to validate a CC number." << endl; + cout << "You can enter 'exit' anytime to quit." << endl; + + while (true) + { + + cout << "Please enter a CC number to validate: "; + cin >> ccNumber; + + if (ccNumber == "exit") + break; + + else if (!isNumberString(ccNumber)) + { + cout << "Bad input! "; + continue; + } + + int len = ccNumber.length(); + int doubleEvenSum = 0; + + for (int i = len - 2; i >= 0; i = i - 2) + { + int dbl = ((ccNumber[i] - 48) * 2); + if (dbl > 9) + { + dbl = (dbl / 10) + (dbl % 10); + } + doubleEvenSum += dbl; + } + + for (int i = len - 1; i >= 0; i = i - 2) + { + doubleEvenSum += (ccNumber[i] - 48); + } + + cout << (doubleEvenSum % 10 == 0 ? "Valid!" : "Invalid!") << endl; + + continue; + } + + return 0; +} \ No newline at end of file diff --git a/cc_validator.exe b/cc_validator.exe new file mode 100644 index 0000000000000000000000000000000000000000..f43cacc6765a0b6289faddcc836e18fcbb130f0a GIT binary patch literal 55997 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 ClrZ-I literal 0 HcmV?d00001