Алгоритмы (PHP): различия между версиями
Перейти к навигации
Перейти к поиску
(не показано 11 промежуточных версий этого же участника) | |||
Строка 31: | Строка 31: | ||
=== Сколько нечетных среди n введенных === | === Сколько нечетных среди n введенных === | ||
<syntaxhighlight lang="php" line> | <syntaxhighlight lang="php" line> | ||
+ | <?php | ||
+ | $number = readline("Введите количество чисел: "); | ||
+ | $count = 0; | ||
+ | for($i = 1; $i <= $number; $i++) { | ||
+ | $x = readline("Введите число " . $i . ": "); | ||
+ | if (abs($x % 2) === 1) { | ||
+ | $count++; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | echo "Количество наечётных чисел = " . $count; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Защита от неверного ввода === | === Защита от неверного ввода === | ||
<syntaxhighlight lang="php" line> | <syntaxhighlight lang="php" line> | ||
+ | <?php | ||
+ | $x = 0; | ||
+ | do { | ||
+ | $x = readline("Введите x>0:"); | ||
+ | |||
+ | if ($x <= 0) { | ||
+ | echo("Неверный ввод\n"); | ||
+ | } | ||
+ | } while ($x <= 0); | ||
+ | echo("x = " . $x); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Вывод 10 первых степеней двойки === | === Вывод 10 первых степеней двойки === | ||
<syntaxhighlight lang="php" line> | <syntaxhighlight lang="php" line> | ||
− | + | <?php | |
+ | $x = 2; | ||
+ | for($i = 1; $i <= 10; $i++) { | ||
+ | echo "2 ** " . $i . " = " . $x . "\n"; | ||
+ | $x *= 2; | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Вывод всех двухзначных чисел, кратных 5 === | === Вывод всех двухзначных чисел, кратных 5 === | ||
<syntaxhighlight lang="php" line> | <syntaxhighlight lang="php" line> | ||
− | + | <?php | |
+ | $x = 10; | ||
+ | while ($x < 100) { | ||
+ | echo $x . "\n"; | ||
+ | $x += 5; | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Вывод n первых чисел Фибоначчи === | === Вывод n первых чисел Фибоначчи === | ||
<syntaxhighlight lang="php" line> | <syntaxhighlight lang="php" line> | ||
− | + | <?php | |
+ | $n = readline("Введите целое число n (n > 1): "); | ||
+ | $a = 1; $b = 1; | ||
+ | echo $a . " " . $b . " "; | ||
+ | for($i = 1; $i <= $n - 2; $i++) { | ||
+ | $tmp = $a; | ||
+ | $a = $b; | ||
+ | $b += $tmp; | ||
+ | echo $b . " "; | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Найти НОД(A,B), используя алгоритм Евклида: === | === Найти НОД(A,B), используя алгоритм Евклида: === | ||
<syntaxhighlight lang="php" line> | <syntaxhighlight lang="php" line> | ||
+ | <?php | ||
+ | $a = readline("Введите число a: "); | ||
+ | $b = readline("Введите число b: "); | ||
+ | while ($b != 0) { | ||
+ | $tmp = $a; | ||
+ | $a = $b; | ||
+ | $b = $tmp % $b; | ||
+ | } | ||
+ | |||
+ | echo "НОД(a, b) = " . $a; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Найти сумму цифр целого числа m === | === Найти сумму цифр целого числа m === | ||
<syntaxhighlight lang="php" line> | <syntaxhighlight lang="php" line> | ||
+ | <?php | ||
+ | $m = readline("Введите число m: "); | ||
+ | |||
+ | $sum = 0; | ||
+ | $m1 = abs($m); | ||
+ | |||
+ | while ($m1 > 0) { | ||
+ | $sum += $m1 % 10; | ||
+ | $m1 /= 10; | ||
+ | } | ||
+ | echo "Сумма цифр числа " . $m . " = " . $sum; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Найти max из введенных чисел === | === Найти max из введенных чисел === | ||
<syntaxhighlight lang="php" line> | <syntaxhighlight lang="php" line> | ||
+ | <?php | ||
+ | $number = readline("Введите количество чисел: "); | ||
+ | |||
+ | $i = 1; | ||
+ | $x = readline("Введите число " . $i . ": "); | ||
+ | $max = $x; | ||
+ | |||
+ | for($i = 2; $i <= $number; $i++) { | ||
+ | $x = readline("Введите число " . $i . ": "); | ||
+ | if ($x > $max) { | ||
+ | $max = $x; | ||
+ | } | ||
+ | } | ||
+ | echo "Максимальное из введённых чисел = " . $max; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Найти min, удовлетворяющее условию p(x) === | === Найти min, удовлетворяющее условию p(x) === | ||
<syntaxhighlight lang="php" line> | <syntaxhighlight lang="php" line> | ||
+ | <?php | ||
+ | function p($x): bool | ||
+ | { | ||
+ | return $x > 0; | ||
+ | } | ||
+ | $number = readline("Введите количество чисел: "); | ||
+ | $exists = false; | ||
+ | $min = 0; | ||
+ | |||
+ | for($i = 1; $i <= $number; $i++) { | ||
+ | $x = readline("Введите число " . $i . ": "); | ||
+ | if ((($exists == false) && (p($x))) || (($x < $min) && p($x))) { | ||
+ | $min = $x; | ||
+ | $exists = true; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if ($exists) { | ||
+ | echo "Минимальное из введенных чисел, удовлетворяющих условию: " . $min; | ||
+ | } else { | ||
+ | echo "Нет чисел, удовлетворяющих условию"; | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Есть ли среди введенных число k? === | === Есть ли среди введенных число k? === | ||
<syntaxhighlight lang="php" line> | <syntaxhighlight lang="php" line> | ||
+ | <?php | ||
+ | $n = readline("Введите количество чисел:"); | ||
+ | $k = readline("Введите искомое число k:"); | ||
+ | $exists = false; | ||
+ | for($i = 1; $i <= $n; $i++) { | ||
+ | $x = readline("Введите число " . $i . ": "); | ||
+ | if ($x == $k) { | ||
+ | $exists = true; | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | |||
+ | if ($exists) { | ||
+ | echo "Число " . $k . " было введено."; | ||
+ | } else { | ||
+ | echo "Число " . $k . " не было введено."; | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Является ли число N>1 простым? === | === Является ли число N>1 простым? === | ||
<syntaxhighlight lang="php" line> | <syntaxhighlight lang="php" line> | ||
+ | <?php | ||
+ | $n = readline("Введите целое число n (n > 1):"); | ||
+ | |||
+ | $isPrime = true; | ||
+ | for($i = 2; $i <= round(sqrt($n)); $i++) { | ||
+ | if ($n % $i == 0) { | ||
+ | $isPrime = false; | ||
+ | break; | ||
+ | } | ||
+ | } | ||
+ | if ($isPrime) { | ||
+ | echo "Число " . $n . " является простым"; | ||
+ | } else { | ||
+ | echo "Число " . $n . " является составным"; | ||
+ | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== Разложение числа на простые множители === | === Разложение числа на простые множители === | ||
<syntaxhighlight lang="php" line> | <syntaxhighlight lang="php" line> | ||
+ | <?php | ||
+ | $x = readline("Введите искомое число x:"); | ||
+ | $i = 2; | ||
+ | echo $x . " = 1"; | ||
+ | do { | ||
+ | if ($x % $i == 0) { | ||
+ | echo " * " . $i; | ||
+ | $x = $x / $i; | ||
+ | } else { | ||
+ | $i++; | ||
+ | } | ||
+ | } while ($x != 1); | ||
</syntaxhighlight> | </syntaxhighlight> |
Текущая версия на 09:44, 9 июля 2021
Код программ
Сумма вводимых целых чисел
1 <?php
2 $number = readline("Введите число слагаемых: ");
3
4 $sum = 0;
5 for($i = 1; $i <= $number; $i++) {
6 $x = readline("Введите слагаемое " . $i . ": ");
7 $sum += $x;
8 }
9
10 echo "Сумма равна " . $sum;
Произведение целых чисел
1 <?php
2 $number = readline("Введите число множителей: ");
3
4 $product = 1;
5 for($i = 1; $i <= $number; $i++) {
6 $x = readline("Введите множитель " . $i . ": ");
7 $product *= $x;
8 }
9
10 echo "Произведение равно " . $product;
Сколько нечетных среди n введенных
1 <?php
2 $number = readline("Введите количество чисел: ");
3
4 $count = 0;
5 for($i = 1; $i <= $number; $i++) {
6 $x = readline("Введите число " . $i . ": ");
7 if (abs($x % 2) === 1) {
8 $count++;
9 }
10 }
11
12 echo "Количество наечётных чисел = " . $count;
Защита от неверного ввода
1 <?php
2 $x = 0;
3 do {
4 $x = readline("Введите x>0:");
5
6 if ($x <= 0) {
7 echo("Неверный ввод\n");
8 }
9 } while ($x <= 0);
10
11 echo("x = " . $x);
Вывод 10 первых степеней двойки
1 <?php
2 $x = 2;
3 for($i = 1; $i <= 10; $i++) {
4 echo "2 ** " . $i . " = " . $x . "\n";
5 $x *= 2;
6 }
Вывод всех двухзначных чисел, кратных 5
1 <?php
2 $x = 10;
3 while ($x < 100) {
4 echo $x . "\n";
5 $x += 5;
6 }
Вывод n первых чисел Фибоначчи
1 <?php
2 $n = readline("Введите целое число n (n > 1): ");
3 $a = 1; $b = 1;
4 echo $a . " " . $b . " ";
5 for($i = 1; $i <= $n - 2; $i++) {
6 $tmp = $a;
7 $a = $b;
8 $b += $tmp;
9 echo $b . " ";
10 }
Найти НОД(A,B), используя алгоритм Евклида:
1 <?php
2 $a = readline("Введите число a: ");
3 $b = readline("Введите число b: ");
4
5 while ($b != 0) {
6 $tmp = $a;
7 $a = $b;
8 $b = $tmp % $b;
9 }
10
11 echo "НОД(a, b) = " . $a;
Найти сумму цифр целого числа m
1 <?php
2 $m = readline("Введите число m: ");
3
4 $sum = 0;
5 $m1 = abs($m);
6
7 while ($m1 > 0) {
8 $sum += $m1 % 10;
9 $m1 /= 10;
10 }
11
12 echo "Сумма цифр числа " . $m . " = " . $sum;
Найти max из введенных чисел
1 <?php
2 $number = readline("Введите количество чисел: ");
3
4 $i = 1;
5 $x = readline("Введите число " . $i . ": ");
6 $max = $x;
7
8 for($i = 2; $i <= $number; $i++) {
9 $x = readline("Введите число " . $i . ": ");
10 if ($x > $max) {
11 $max = $x;
12 }
13 }
14
15 echo "Максимальное из введённых чисел = " . $max;
Найти min, удовлетворяющее условию p(x)
1 <?php
2 function p($x): bool
3 {
4 return $x > 0;
5 }
6
7 $number = readline("Введите количество чисел: ");
8 $exists = false;
9 $min = 0;
10
11 for($i = 1; $i <= $number; $i++) {
12 $x = readline("Введите число " . $i . ": ");
13 if ((($exists == false) && (p($x))) || (($x < $min) && p($x))) {
14 $min = $x;
15 $exists = true;
16 }
17 }
18
19 if ($exists) {
20 echo "Минимальное из введенных чисел, удовлетворяющих условию: " . $min;
21 } else {
22 echo "Нет чисел, удовлетворяющих условию";
23 }
Есть ли среди введенных число k?
1 <?php
2 $n = readline("Введите количество чисел:");
3 $k = readline("Введите искомое число k:");
4
5 $exists = false;
6 for($i = 1; $i <= $n; $i++) {
7 $x = readline("Введите число " . $i . ": ");
8 if ($x == $k) {
9 $exists = true;
10 break;
11 }
12 }
13
14 if ($exists) {
15 echo "Число " . $k . " было введено.";
16 } else {
17 echo "Число " . $k . " не было введено.";
18 }
Является ли число N>1 простым?
1 <?php
2 $n = readline("Введите целое число n (n > 1):");
3
4 $isPrime = true;
5 for($i = 2; $i <= round(sqrt($n)); $i++) {
6 if ($n % $i == 0) {
7 $isPrime = false;
8 break;
9 }
10 }
11
12 if ($isPrime) {
13 echo "Число " . $n . " является простым";
14 } else {
15 echo "Число " . $n . " является составным";
16 }
Разложение числа на простые множители
1 <?php
2 $x = readline("Введите искомое число x:");
3
4 $i = 2;
5 echo $x . " = 1";
6 do {
7 if ($x % $i == 0) {
8 echo " * " . $i;
9 $x = $x / $i;
10 } else {
11 $i++;
12 }
13 } while ($x != 1);