после нескольких упражнений php я нашел два упражнения, на которых я застрял, хотя я сделал много попыток.
1-й:
Напишите простую программу для печати цифры в единичном месте числа, введенного пользователем.
вход: введите номер: 3457
выход 7
<?php
$answer=0;
echo "Enter Number:";
$number = trim(fgets(STDIN));//{Write down your logic here//}
echo $answer;
exit;
?>
2-й:
Напишите программу, чтобы увидеть, является ли число четным числом 3.
вход: введите число: 6
вывод: да
вход: число: 9
выход: нет
<?php
echo "Enter the Number:";
$number = trim(fgets(STDIN));
//{
//write down your logic here
//}
exit;
?>
Спасибо 🙂
вот решение для 1-го:
<?php
$answer=0;
echo "Enter Number:";
$numbers = trim(fgets(STDIN));
$number = intval($numbers);
if(is_float($number)){
list($int, $dec) = explode('.', $number);
if($number < 0){
$answer = "-".substr($int, -1);
}
else{
$answer = substr($int, -1);
}
}
else{
if($number < 0){
$answer = "-".substr($number, -1);
}
else{
$answer = substr($number, -1);
}
}
echo $answer;
exit;
?>
решение для второго
<?php
echo "Enter the Number:";
$number = trim(fgets(STDIN));
//{
//write down your logic here
$even = $number % 2; //to check number is even or not
if($even == 0){
$mod = $number % 3; //to check whether it is devisible by 3 or not
if($mod == 0){
echo "yes";
}
else{
echo "no";
}
}
else{
echo "no";
}
//}
exit;
?>
Напишите простую программу для печати цифры в единичном месте числа, введенного пользователем.
Предполагая, что ввод является строкой типа, вы можете подойти к этому с символьными массивами. Например:
//We subtract 1 from strlen() because indexes start at 0
echo (string) $number[strlen($number)-1];
Напишите программу, чтобы увидеть, является ли число четным числом 3.
Мы можем использовать оператор по модулю для этого, и посмотрим, если мы разделим на 3, есть остаток.
echo ($number % 3 == 0) ? "Yes" : "No";
Хотя я все еще думаю, что есть лучший способ решить это упражнение. Я смог передать его, используя следующее решение
<?php
$answer=0;
echo "Enter Number:";
// Converts the number into a double to cover all input cases
$number = (double)trim(fgets(STDIN));//{Write down your logic here
// Checks to see if a negetive number was entered
if ($number <0){
// Gets the Position of the decimal Point and reduce it by 1 to get
// the position of the Units place
$position = strpos($number, ".") - 1;
// returns the units string and makes it negetive
$answer = substr ($number,$position,1 ) * -1;
}
// follows the same as above, leaves string positive
else {
$position = strpos($number, ".") - 1;
$answer = substr ($number,$position,1 );
}
//}
echo $answer;
exit;
?>
Я использовал это:
<?php
$answer=0;
echo "Enter Number:";
$number = trim(fgets(STDIN));
$x= $number;
$i= $x;
$m= 0;
if ($x > 0 && $x > 10) {
do {
$x = $x-10;
$m= $m +1;
} while ($x > 10);
$m= $m*10;
$answer=$i-$m; }
elseif ($x < 0){
$i=$x*(-1);
$x=$x*(-1);
do {
$x = $x-10;
$m= $m +1;
} while ($x > 10);
$m= $m*10;
$b=$i-$m;
$answer=$b*(-1);
}
else
$answer=round($number);//}
echo $answer;
exit;
?>
Решение 1
<?php
$answer=0;
echo "Enter Number:";
$number = trim(fgets(STDIN));$number = intval($number);
$answer = substr($number, (-1));
if($number < 0)
{
$answer = $answer * -1;
}echo $answer;
exit;
?>
Решение 2
<?php
echo "Enter the Number:";
$number = trim(fgets(STDIN));$number2 = $number / 3;
if ($number2 % 2 == 0)
{
echo "yes";
}
else
{
echo "no";
}exit;
?>