Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- bool isValid(const string& cardNumber)
- {
- if ((sumOfDoubleEvenPlace(cardNumber) + SumOfOddPlace(cardNumber)) % 10 != 0)
- {
- return false;
- }
- /* Test for startsWith? */
- /* test for length */
- }
- bool startsWith(const string& cardNumber, const string& substr)
- {
- if (cardNumber[0] - '0' == 4 || cardNumber[0] - '0' == 5 || cardNumber[0] - '0' == 6 ||
- (cardNumber[0] - '0' == 3 && cardNumber[1] - '0' == 7))
- /* Then do what? */
- }
- //-----------------------------------------------------------------------------------------------------------
- int getDigit(int number)
- {
- if ((cardNumber[number] - '0') * 2 >= 10)// Where is it getting cardNumber from? You didn't pass cardNumber in above
- {
- int A = (cardNumber[number] - '0') * 2 - 10;
- int B = ((cardNumber[number] - '0') * 2) / 10;
- number = A + B;
- return number;
- }
- else
- {
- number = cardNumber[number] - '0';
- return number;
- }
- }
- int sumOfDoubleEvenPlace(const string& cardNumber)
- {
- int Even = 0;
- int number = 0;
- while (number < cardNumber.length())
- {
- if (number == 0 || number % 2 == 0)
- {
- Even = Even + getDigit(number);
- }
- number++;
- }
- return cardNumber = Even;
- }
- int SumOfOddPlace(const string& cardNumber)
- {
- int Odd = 0;
- int number = 1;
- while (number < cardNumber.length())
- {
- if (number == 1 || number % 2 != 0)
- {
- Odd = Odd + getDigit(number);
- }
- number++;
- }
- return cardNumber = Odd;
- }
- int main()
- {
- cout << " Enter a credit card # :";
- string cardNumber;
- getline(cin, cardNumber);
- if (isValid(cardNumber))
- {
- cout << cardNumber << " is a valid number \n";
- }
- else
- {
- cout << cardNumber << " is not a valid number \n";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement