//hudson price CSC1A Chapter 8
//
/**************************************************************
*
* Charge Account Validation modifacation
* ____________________________________________________________
* this program allows the user to put in the charge
* account number and see if it is valid orn ot
* ____________________________________________________________
* INPUT
*any of the account numbers
*
* OUTPUT
* Valid
* Invalid
**************************************************************/
* #include <iostream>
#include <algorithm>
using namespace std;
// Function to perform selection sort on an array
void selectionSort(int arr[], int size) {
for (int i = 0; i < size - 1; ++i) {
int minIndex = i;
for (int j = i + 1; j < size; ++j) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
swap(arr[i], arr[minIndex]);
}
}
}
// fungion to do binary search in array
bool isValidAccount(int accountNumber, int accountArray[], int arraySize) {
int left = 0;
int right = arraySize - 1;
while (left <= right) {
int mid = left + (right - left) / 2;
if (accountArray[mid] == accountNumber) {
return true; // Account number found
} else if (accountArray[mid] < accountNumber) {
left = mid + 1;
} else {
right = mid - 1;
}
}
return false; // Account number not found
}
int main() {
//initialization with lucky numbers
int chargeAccounts[] = {5658845, 4520125, 7895122, 8777541, 8451277, 1302850,
8080152, 4562555, 5552012, 5050552, 7825877, 1250255,
1005231, 6545231, 3852085, 7576651, 7881200, 4581002};
// Size of the array
int arraySize = sizeof(chargeAccounts) / sizeof(chargeAccounts[0]);
// sorting array with selection sort
selectionSort(chargeAccounts, arraySize);
// account numbers imput
cout << "Enter the charge account number: ";
int inputAccountNumber;
cin >> inputAccountNumber;
// account number validation
if (isValidAccount(inputAccountNumber, chargeAccounts, arraySize)) {
cout << "Valid account number.\n";
} else {
cout << "Invalid account number.\n";
}
return 0;
}
Ly9odWRzb24gcHJpY2UgQ1NDMUEgQ2hhcHRlciA4Ci8vCi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogKgogKiBDaGFyZ2UgQWNjb3VudCBWYWxpZGF0aW9uIG1vZGlmYWNhdGlvbgogKiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KICogdGhpcyBwcm9ncmFtIGFsbG93cyB0aGUgdXNlciB0byBwdXQgaW4gdGhlIGNoYXJnZQogKiBhY2NvdW50IG51bWJlciBhbmQgc2VlIGlmIGl0IGlzIHZhbGlkIG9ybiBvdAogKiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KICogSU5QVVQKICphbnkgb2YgdGhlIGFjY291bnQgbnVtYmVycwogKgogKiBPVVRQVVQKICogVmFsaWQKICogSW52YWxpZAogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAqICNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgovLyBGdW5jdGlvbiB0byBwZXJmb3JtIHNlbGVjdGlvbiBzb3J0IG9uIGFuIGFycmF5CnZvaWQgc2VsZWN0aW9uU29ydChpbnQgYXJyW10sIGludCBzaXplKSB7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHNpemUgLSAxOyArK2kpIHsKICAgICAgICBpbnQgbWluSW5kZXggPSBpOwogICAgICAgIGZvciAoaW50IGogPSBpICsgMTsgaiA8IHNpemU7ICsraikgewogICAgICAgICAgICBpZiAoYXJyW2pdIDwgYXJyW21pbkluZGV4XSkgewogICAgICAgICAgICAgICAgbWluSW5kZXggPSBqOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmIChtaW5JbmRleCAhPSBpKSB7CiAgICAgICAgICAgIHN3YXAoYXJyW2ldLCBhcnJbbWluSW5kZXhdKTsKICAgICAgICB9CiAgICB9Cn0KCi8vIGZ1bmdpb24gdG8gZG8gYmluYXJ5IHNlYXJjaCBpbiBhcnJheQpib29sIGlzVmFsaWRBY2NvdW50KGludCBhY2NvdW50TnVtYmVyLCBpbnQgYWNjb3VudEFycmF5W10sIGludCBhcnJheVNpemUpIHsKICAgIGludCBsZWZ0ID0gMDsKICAgIGludCByaWdodCA9IGFycmF5U2l6ZSAtIDE7CiAgICAKICAgIHdoaWxlIChsZWZ0IDw9IHJpZ2h0KSB7CiAgICAgICAgaW50IG1pZCA9IGxlZnQgKyAocmlnaHQgLSBsZWZ0KSAvIDI7CiAgICAgICAgCiAgICAgICAgaWYgKGFjY291bnRBcnJheVttaWRdID09IGFjY291bnROdW1iZXIpIHsKICAgICAgICAgICAgcmV0dXJuIHRydWU7IC8vIEFjY291bnQgbnVtYmVyIGZvdW5kCiAgICAgICAgfSBlbHNlIGlmIChhY2NvdW50QXJyYXlbbWlkXSA8IGFjY291bnROdW1iZXIpIHsKICAgICAgICAgICAgbGVmdCA9IG1pZCArIDE7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgcmlnaHQgPSBtaWQgLSAxOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBmYWxzZTsgLy8gQWNjb3VudCBudW1iZXIgbm90IGZvdW5kCn0KCmludCBtYWluKCkgewogICAgLy9pbml0aWFsaXphdGlvbiB3aXRoIGx1Y2t5IG51bWJlcnMKICAgIGludCBjaGFyZ2VBY2NvdW50c1tdID0gezU2NTg4NDUsIDQ1MjAxMjUsIDc4OTUxMjIsIDg3Nzc1NDEsIDg0NTEyNzcsIDEzMDI4NTAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICA4MDgwMTUyLCA0NTYyNTU1LCA1NTUyMDEyLCA1MDUwNTUyLCA3ODI1ODc3LCAxMjUwMjU1LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgMTAwNTIzMSwgNjU0NTIzMSwgMzg1MjA4NSwgNzU3NjY1MSwgNzg4MTIwMCwgNDU4MTAwMn07CiAgICAvLyBTaXplIG9mIHRoZSBhcnJheQogICAgaW50IGFycmF5U2l6ZSA9IHNpemVvZihjaGFyZ2VBY2NvdW50cykgLyBzaXplb2YoY2hhcmdlQWNjb3VudHNbMF0pOwogICAgCiAgICAvLyBzb3J0aW5nIGFycmF5IHdpdGggc2VsZWN0aW9uIHNvcnQKICAgIHNlbGVjdGlvblNvcnQoY2hhcmdlQWNjb3VudHMsIGFycmF5U2l6ZSk7CgogICAgLy8gYWNjb3VudCBudW1iZXJzIGltcHV0CiAgICBjb3V0IDw8ICJFbnRlciB0aGUgY2hhcmdlIGFjY291bnQgbnVtYmVyOiAiOwogICAgaW50IGlucHV0QWNjb3VudE51bWJlcjsKICAgIGNpbiA+PiBpbnB1dEFjY291bnROdW1iZXI7CgogICAgLy8gYWNjb3VudCBudW1iZXIgdmFsaWRhdGlvbgogICAgaWYgKGlzVmFsaWRBY2NvdW50KGlucHV0QWNjb3VudE51bWJlciwgY2hhcmdlQWNjb3VudHMsIGFycmF5U2l6ZSkpIHsKICAgICAgICBjb3V0IDw8ICJWYWxpZCBhY2NvdW50IG51bWJlci5cbiI7CiAgICB9IGVsc2UgewogICAgICAgIGNvdXQgPDwgIkludmFsaWQgYWNjb3VudCBudW1iZXIuXG4iOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==