SHOW:
|
|
- or go back to the newest paste.
| 1 | #include <iostream> | |
| 2 | #include <string> | |
| 3 | using namespace std; | |
| 4 | ||
| 5 | ||
| 6 | bool isValid(const string& cardNumber) | |
| 7 | {
| |
| 8 | if ((sumOfDoubleEvenPlace(cardNumber) + SumOfOddPlace(cardNumber)) % 10 != 0) | |
| 9 | {
| |
| 10 | return false; | |
| 11 | } | |
| 12 | ||
| 13 | /* Test for startsWith? */ | |
| 14 | /* test for length */ | |
| 15 | ||
| 16 | } | |
| 17 | bool startsWith(const string& cardNumber, const string& substr) | |
| 18 | {
| |
| 19 | if (cardNumber[0] - '0' == 4 || cardNumber[0] - '0' == 5 || cardNumber[0] - '0' == 6 || | |
| 20 | (cardNumber[0] - '0' == 3 && cardNumber[1] - '0' == 7)) | |
| 21 | /* Then do what? */ | |
| 22 | ||
| 23 | } | |
| 24 | ||
| 25 | ||
| 26 | ||
| 27 | ||
| 28 | ||
| 29 | ||
| 30 | ||
| 31 | ||
| 32 | ||
| 33 | //----------------------------------------------------------------------------------------------------------- | |
| 34 | int getDigit(int number) | |
| 35 | - | if ((cardNumber[number] - '0') * 2 >= 10) |
| 35 | + | |
| 36 | if ((cardNumber[number] - '0') * 2 >= 10)// Where is it getting cardNumber from? You didn't pass cardNumber in above | |
| 37 | {
| |
| 38 | int A = (cardNumber[number] - '0') * 2 - 10; | |
| 39 | int B = ((cardNumber[number] - '0') * 2) / 10; | |
| 40 | number = A + B; | |
| 41 | return number; | |
| 42 | } | |
| 43 | else | |
| 44 | {
| |
| 45 | number = cardNumber[number] - '0'; | |
| 46 | return number; | |
| 47 | } | |
| 48 | } | |
| 49 | int sumOfDoubleEvenPlace(const string& cardNumber) | |
| 50 | {
| |
| 51 | int Even = 0; | |
| 52 | int number = 0; | |
| 53 | while (number < cardNumber.length()) | |
| 54 | {
| |
| 55 | if (number == 0 || number % 2 == 0) | |
| 56 | {
| |
| 57 | Even = Even + getDigit(number); | |
| 58 | } | |
| 59 | ||
| 60 | number++; | |
| 61 | } | |
| 62 | return cardNumber = Even; | |
| 63 | } | |
| 64 | int SumOfOddPlace(const string& cardNumber) | |
| 65 | {
| |
| 66 | int Odd = 0; | |
| 67 | int number = 1; | |
| 68 | while (number < cardNumber.length()) | |
| 69 | {
| |
| 70 | if (number == 1 || number % 2 != 0) | |
| 71 | {
| |
| 72 | Odd = Odd + getDigit(number); | |
| 73 | } | |
| 74 | number++; | |
| 75 | } | |
| 76 | return cardNumber = Odd; | |
| 77 | } | |
| 78 | int main() | |
| 79 | {
| |
| 80 | cout << " Enter a credit card # :"; | |
| 81 | string cardNumber; | |
| 82 | getline(cin, cardNumber); | |
| 83 | ||
| 84 | if (isValid(cardNumber)) | |
| 85 | {
| |
| 86 | cout << cardNumber << " is a valid number \n"; | |
| 87 | } | |
| 88 | ||
| 89 | else | |
| 90 | {
| |
| 91 | cout << cardNumber << " is not a valid number \n"; | |
| 92 | } | |
| 93 | ||
| 94 | return 0; | |
| 95 | ||
| 96 | } |