3
05/11/2024 3:26 pm
Старт на темата
Ще ви бъде даден string, представляващ потребителско име. Паролата ще бъде обърнатото потребителско име. Докато получите правилната парола, отпечатайте на конзолата "Грешна парола. Опитайте отново.". Когато получите правилната парола, отпечатайте "Потребителят {име на потребителя} влезе в системата." При четвъртия опит обаче, ако паролата все още не е вярна, отпечатайте "Потребителят {име на потребителя} е блокиран!" и приключете програмата.
Примери:
2 Отговори
3
05/11/2024 3:27 pm
Моето решение:
<?php $user = readline(); $length = strlen($user); //the length of the string $pass = ''; for ($i = $length - 1; $i >= 0; $i--) { $pass .= $user[$i]; } $attempts = 0; while ($attempts++ < 6) { $input = readline(); if ($input === $pass) { echo "User $user logged in." . PHP_EOL; break; } if ($attempts === 4) { echo "User $user blocked!" . PHP_EOL; break; } else { echo "Incorrect password. Try again." . PHP_EOL; } }
1
05/11/2024 3:28 pm
Вместо ог използване на обърнат цикъл for, можете да използвате strrev() PHP function/method да обърнете string (на ред 4):
<?php $user = readline(); $pass = strrev($user); $attempts = 0; while ($attempts++ < 6) { $input = readline(); if ($input === $pass) { echo "User $user logged in." . PHP_EOL; break; } if ($attempts === 4) { echo "User $user blocked!" . PHP_EOL; break; } else { echo "Incorrect password. Try again." . PHP_EOL; } }