Тест на логику мышления

Автор: Aport Суббота, Январь 31st, 2015 Нет комментариев

Рубрика: Язык PHP

Я собрал на этой странице несколько задач, которые можно давать на собеседовании.

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
23
456
78910
1112131415
161718192021
22232425262728
2930313233343536
373839404142434445
46474849505152535455
5657585960616263646566
676869707172737475767778
79808182838485868788899091
9293949596979899100


1 2 3 4 5 6 7 sum
442 708 743 181 95 365 294 2828
189 523 728 84 107 72 512 2215
452 232 516 162 352 417 364 2495
161 702 182 234 609 565 224 2677
5 768 377 446 699 342 626 3263
1249 2933 2546 1107 1862 1761 2020 sum

Удачки.

 

Источник: yapro.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты