From a32618fb9fd7241aeb6c75eb812e8ba3a085df92 Mon Sep 17 00:00:00 2001 From: skeepwalk Date: Sun, 25 Dec 2022 17:03:41 +0500 Subject: [PATCH] asdasdasd --- "\320\273\321\203\320\275\320\260.php" | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 "\320\273\321\203\320\275\320\260.php" diff --git "a/\320\273\321\203\320\275\320\260.php" "b/\320\273\321\203\320\275\320\260.php" new file mode 100644 index 0000000..80aafa0 --- /dev/null +++ "b/\320\273\321\203\320\275\320\260.php" @@ -0,0 +1,24 @@ +function isValidCardNumber($cardNumber) { + // Отразить цифры в номере карты с конца к началу + $cardNumber = strrev($cardNumber); + + // Сложите все цифры вместе (в том числе те, что не были умножены на 2) + $sum = 0; + for ($i = 0; $i < strlen($cardNumber); $i++) { + $digit = $cardNumber[$i]; + + // Начиная с второй справа цифры (т.е. с нечетных позиций), умножьте каждую цифру на 2 + if ($i % 2 == 1) { + $digit *= 2; + if ($digit > 9) { + // Если результат больше 9, то вычтите 9 из него + $digit -= 9; + } + } + + $sum += $digit; + } + + // Если сумма кратна 10, то номер карты валиден + return $sum % 10 == 0; +}