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