Hejka, pomyślałem, że fajnie byłoby mieć coś takiego jak /r/dailyprogrammer na wykopie i będę sobie wrzucał ciekawsze zadania, które samemu udało mi się wykonać i zachęcam do tego innych oczywiście. Jak komuś się nie podoba to proszę dać na czarno #programujemy. Oczywiście fajnie byłoby zobaczyć jak wy rozwiązaliście to zadanko także dawajcie w komentarzu rozwiązania lub link do niego np. na GH 😉
[EASY] Credit card checker
Twoim zadaniem jest przyjęcie od usera numeru karty kredytowej i zwróceniu użytkownikowi informacji o dostawcy karty, masz 4 możliwe outputy:
1. AMEX – karta american express zakładamy, że składa się z 15 liczb.
2. MCARD – mastercard składa się z 16 liczb.
3. VISA – może się składać z 13 lub 16 liczb.
4. INVALID – podana karta nie spełnia żadnych wymagań.
Podstawowe założenia
1. Każdy dostawca karty ma swoje ID na początku numeru karty
– AMEX 34 lub 37
– MCARD 51,52,53,54,55
– VISA pierwsza liczba to 4
2. Dodatkowo o poprawności numeru karty kredytowej świadczy suma kontrolna (checksum). W tym celu będziesz wykorzystywał algorytm Luhna warunki tego algorytmu to:
– Poruszamy się po liczbach od prawej do lewej, każdą drugą liczbę pomnóż przez 2
– Sumę liczb pomnożonych przez dwa dodaj do sumy reszty liczb
– Suma kontrolna jest poprawna jeżeli sumaWszystkichLiczb modulo 10 jest równa 0
Przykład
$ ./credit_checker 4003600000000014
VISA
Do testowania
378282246310005 => AMEX
5555555555554444 => MCARD
4012888888881881 => VISA
369421438430814 => INVALID
371449635398431 => AMEX
5105105105105100 => MCARD
4111111111111111 => VISA
5673598276138003 => INVALID
pokaż spoiler Pomysł na zadanie pochodzi z CS50 Credit
#programowanie #informatyka