Найти цифру в единичном месте | Переполнение стека

после нескольких упражнений 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;
?>

Спасибо 🙂

-2

Решение

вот решение для 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;
?>
1

Другие решения

Напишите простую программу для печати цифры в единичном месте числа, введенного пользователем.

Предполагая, что ввод является строкой типа, вы можете подойти к этому с символьными массивами. Например:

//We subtract 1 from strlen() because indexes start at 0
echo (string) $number[strlen($number)-1];

Напишите программу, чтобы увидеть, является ли число четным числом 3.

Мы можем использовать оператор по модулю для этого, и посмотрим, если мы разделим на 3, есть остаток.

echo ($number % 3 == 0) ? "Yes" : "No";
0

Хотя я все еще думаю, что есть лучший способ решить это упражнение. Я смог передать его, используя следующее решение

<?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;
?>
0

Я использовал это:

<?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;
?>
0

Решение 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;
?>
0
По вопросам рекламы [email protected]