Задача 68. Дано натуральное число n (n<=9999).
а) Является ли это число палиндромом (перевёртышем) с учётом четырёх цифр, как, например, числа 2222, 6116, 0440 и т.д.?
б) Верно ли, что это число содержит ровно три одинаковые цифры, как, например, числа 6676, 4544, 0006 и т.д.?
в) Верно ли, что все четыре цифры числа различны.

Решение задачи на PHP

Файл z0068.php

<form action="z0068.php" method="get">
<br >Введите число n: <input type="text" name="n" <br />
<p><input type="submit" value="Послать"/>
</form>
<?php
if(!isset($_GET['n'])) {
echo "<p>Введите число n!<br>";
exit;
}
$n = $_GET['n'];
if($n == ''){
echo "<p>Введите значение n!<br>";
exit;
}
if($n <> ((int)$n)) {
echo "<p>Значение n должно быть натуральным!<br>";
exit;
}
if($n > 9999){
echo "Число n меньше или равно 9999!";
exit;
}
if($n < 1){
echo "Число n - натуральное!";
exit;
}
if($n > 0 && $n < 10){
$first = 0;
$second = 0;
$third = 0;
$fourth = $n;
}
if($n >= 10 && $n < 100){
$first = 0;
$second = 0;
$third = (int)($n/10);
$fourth = $n - ($third*10);
}
if($n >= 100 && $n < 1000){
$first = 0;
$second = (int)($n/100);
$a = $n - ($second*100);
$third = (int)($a/10);
$b = ($second*100) + ($third*10);
$fourth = $n - $b;
}
if($n >= 1000 && $n < 10000){
$first = (int)($n/1000);
$a = $n - ($first*1000);
$second = (int)($a/100);
$b = $first * 1000;
$c = $second * 100;
$d = $b + $c;
$e = $n - $d;
$i = $e/10;
$third = (int)$i;
$f = (int)($n/10);
$g = $f * 10;
$h = $n - $g;
$fourth = $h;
}
$second_n = $first.$second.$third.$fourth;
$perev_n = strrev($second_n);
if($n > 0 && $n < 10)
$n1 = '000'.$n;
if($n >= 10 && $n < 100)
$n1 = '00'.$n;
if($n >= 100 && $n < 1000)
$n1 = '0'.$n;
if($n >= 1000 && $n < 10000)
$n1 = $n;
if($first == $fourth && $second == $third)
echo "<p>а) Число $n1 - является палиндромом. Так как $n1 = $perev_n.";
else
echo "<p>а) Число $n1 - не является палиндромом. Так как $n1 ≠ $perev_n.";
if(($first == $second && $first == $third && $fourth != $first) ||
($second == $third && $second == $fourth && $second != $first) ||
($first == $second && $first == $fourth && $fourth != $third) ||
($first == $third && $first == $fourth && $first != $second))
echo "<p>б) Число $n1 содержит ровно три одинаковые цифры.";
else
echo "<p>б) Число $n1 не содержит ровно три одинаковые цифры.";
if($first != $second && $first != $third && $first != $fourth)
echo "<p>в) Все четыре цифры числа $n1 различны.";
else
echo "<p>в) Все четыре цифры числа $n1 не различны.";
?>