Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int parseChar(char c)
- {
- int res;
- switch (c)
- {
- case '1':
- res = 1;
- break;
- case '2':
- res = 2;
- break;
- case '3':
- res = 3;
- break;
- case '4':
- res = 4;
- break;
- case '5':
- res = 5;
- break;
- case '6':
- res = 6;
- break;
- case '7':
- res = 7;
- break;
- case '8':
- res = 8;
- break;
- case '9':
- res = 9;
- break;
- case '0':
- res = 0;
- break;
- default:
- res = -1;
- break;
- }
- return res;
- }
- bool validatePESEL(char* pesel)
- {
- int weights[] = {1, 3, 7, 9, 1, 3, 7, 9, 1, 3, 1};
- int digit;
- int sum = 0;
- for(int i = 0; i < 11; ++i)
- {
- digit = parseChar(pesel[i]);
- if(digit == -1)//niecyfra
- return false;
- sum += weights[i] * digit;
- }
- if(sum != 0 && sum % 10 == 0) return true;
- else return false;
- }
- int main()
- {
- int num;
- cin >> num;
- cin.get();
- for(int i = 0; i < num; ++i)
- {
- char currentPESEL[12];
- cin.getline(currentPESEL, 12);
- if(validatePESEL(currentPESEL)) cout << "D\n";
- else cout << "N\n";
- }
- cin.get();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement