Тест на логику мышления |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Я собрал на этой странице несколько задач, которые можно давать на собеседовании. 1) нужно вывести последовательность чисел от 1 до 100 в виде лесенки, то есть на первой строке 1, на второй 2,3, на третей 4,5,6 на четвертой 7,8,9,10 и т.д. 2) Заполнить матрицу 5 на 7 уникальными случайными числами и вывести на экран матрицу и суммы по столбцам и по строкам. Решение: <?php $a = 0; for($i = 1; $a < 100; $i++){ for($n = 0; $n < $i && $a < 100; $n++){ $a++; echo $a; } echo "<br>\n"; } echo '<hr><pre>'; $a = $b = $uniq = array(); for($i = 0; $i < 5; $i++){ $a[ $i ] = array(); for($n = 0; $n < 7; $n++){ while(true){ $x = rand (1, 777); if( !isset($uniq[ $x ]) ){ $uniq[ $x ] = true; break; } } $a[ $i ][ $n ] = $x; if( !isset($b[ $n ]) ){ $b[ $n ] = array(); } $b[ $n ][] = $x; } } echo '<table border="1"><tr>'; for($i = 1; $i < 8; $i++){ echo '<td>'.$i.'</td>'; } echo '<td>sum</td></tr>'; foreach($a as $k => $v){ echo '<tr>'; foreach($v as $r){ echo '<td>'.$r.'</td>'; } echo '<td>'.array_sum($v).'</td></tr>'; } echo '<tr>'; for($n = 0; $n < 7; $n++){ echo '<td>'.array_sum($b[$n]).'</td>'; } echo '<td>sum</td></tr>'; echo '</table>'; В результате получим: 1
Удачки. |
|
Похожие статьи: |
Справочники и учебники: |
Или как вариант решение 1 задачи без вложенного цикла: $buf = 1; $step = 2; for ($i = 1; $i <= 100; $i++) { echo $i; if ($buf == $i) { $buf += $step++; echo "<br/>n"; } } |
Всего 3 цикла против 8 и 1 вложенное условие против 2. $uniq=[]; while(sizeof($uniq)<42){ $number = rand(1,4400); if(!isset($uniq[$number])){ array_push($uniq,$number); } } echo "<table><tr>"; for($n=1;$n<=7;$n++){ echo "<td>".$n."</td>"; } echo "<td>SUM</td></tr>"; $counter=0; $n_iterator=0; $total =0; for($u=0;$u<6;$u++){ echo "<tr>"; for($m=$n_iterator;$m<=$n_iterator+6;$m++){ $total+=$counter; echo "<td>".$uniq[$m]."</td>"; $counter+=$uniq[$m]; } echo "<td>".$counter."</td></tr>"; $n_iterator+=7; $counter=0; } echo "</table>"; echo "<span><i>Total:</i> "+$total+"</span>"; |
А что бы не было такого извращения: if( !isset($uniq[ $x ]) ){ $uniq[ $x ] = true; break; } Не плохо было бы написать так: $uniq=[]; while(sizeof(array_unique($uniq))<6*7){ array_push($uniq, rand(1,4000)); } |
С корректировками $uniq=[]; while(sizeof(array_unique($uniq))<42){ array_push($uniq, rand(1,4000)); } $sum_column=[0,0,0,0,0,0,0]; echo "<table><tr>"; for($n=1;$n<=7;$n++){ echo "<td>".$n."</td>"; } echo "<td>SUM</td></tr>"; $total = $counter = $column = $n_iterator = 0; $sum_column=[0,0,0,0,0,0,0]; for($u=0;$u<6;$u++){ echo "<tr>"; for($m=$n_iterator;$m<=$n_iterator+6;$m++){ $total+=$counter; echo "<td>".$uniq[$m]."</td>"; $counter+=$uniq[$m]; $sum_column[$column]+=$uniq[$m]; $column++; } echo "<td>".$counter."</td></tr>"; $n_iterator+=7; $counter=0; $column=0; } echo "<tr>"; foreach ($sum_column as $key => $value) { echo "<td>".$value."</td>"; } echo "</tr>"; echo "</table>"; echo "<span><i>Total:</i> "+$total+"</span>"; |
« Symfony2 мультиязычность | Задача по PHP + MySQL на собеседование » |
Главная | PHP | MySQL | Unix | JavaScript | Desktop | Дизайн | Продвижение | Другое |
X |
Новые заметки:→ Почему задачи выполняют долго → Равномерное распределение данных |
Последние комменты:19.08.2018 18:57, 100 комментов
14.08.2018 10:43, 1 коммент
09.08.2018 06:02, 309 комментов
08.08.2018 02:52, 1 коммент
25.07.2018 10:07, 2 коммента
|
Yapro CMS:→ Плагины
|