Подскажите как делать додавание чисел по кругу
Например существуют такие числа 1,2,4
Из них получится следующие:
3 = 1 +2
7 = 1 +2 +4
5 = 1 +4
6 = 1 +4 +1
или такие числа:
2,3,1,7
5 = 2 +3, 6 = 2 +3 +1; 13 = 2 +3 +1 +7
3 = 2 +1, 10 = 2 +1 +7; 12 = 2 +1 +7 +2
9 = 2 +7; 11 = 2 +7 +2, 14 = 11 +3
Я не знаю как это зациклить а в ручную много писать. Спасибо буду очень признателен
также прилагаетса рисунок:http://saveimg.ru/show-image.php?id=642f087b2d8033182cffb6c9ccec623d
hydrogen
4.12.2012 - 08:46
$base_numbers = array(1, 3, 10, 2, 5);
$increment_matrix = array();
$summ = 0;
foreach ($base_numbers as $base_number) {
$next_number = $summ + $base_number;
$increment_matrix[] = $next_number;
$summ += $next_number;
}
array_shift($increment_matrix);
Вроде так. Проверь.
P.S. Похоже на задание для какого-нибудь конкурса/олимпиады... :)
_____________
Задача не олимпиадная для контрольной робот.
<?
$base_numbers = array(1, 3, 10, 2, 5);
$increment_matrix = array();
$summ = 0;
foreach ($base_numbers as $base_number) {
$next_number = $summ + $base_number;
$increment_matrix[] = $next_number;
$summ = $next_number;
}
array_shift($increment_matrix);
echo "<pre>";
print_r($increment_matrix);
echo "</pre>";
?>
$summ += $next_number; поменял на $summ = $next_number;
виводит толька первий 4 числа а не все 16
Может я не так виводжу
hydrogen
4.12.2012 - 17:04
Цитата |
$summ += $next_number; поменял на $summ = $next_number; |
Пардон, $summ += $base_number;
foreach ($base_numbers as $base_number) {
$increment_matrix[] = $summ + $base_number;
$summ += $base_number;
}
Цитата |
виводит толька первий 4 числа а не все 16 |
А в
$base_numbers пробовал все 16 прописать?
_____________
Да замечатльно но не до конца :
из введених 5ти елементов
должна получитса матрица 4 на 4 :
4 14 16 21
11 13 18 19
3 8 9 12
6 7 10 20
а виводит толька
4 14 16 21
канешно можна ввести вот так
<?
$base_numbers = array(1, 3, 10, 2, 5);
$increment_matrix = array();
$summ = 0;
foreach ($base_numbers as $base_number) {
$increment_matrix[] = $summ + $base_number;
$summ += $base_number;
}
array_shift($increment_matrix);
echo "<pre>";
print_r($increment_matrix);
echo "</pre>";
$base_numbers = array(1, 10, 2, 5, 1);
$increment_matrix = array();
$summ = 0;
foreach ($base_numbers as $base_number) {
$increment_matrix[] = $summ + $base_number;
$summ += $base_number;
}
array_shift($increment_matrix);
echo "<pre>";
print_r($increment_matrix);
echo "</pre>";
?>
// Канешно можна ввести вот так, приетом менятьсодержимое масива $base_numbers();
сперва
$base_numbers = array(1, 3, 10, 2, 5);
потом
$base_numbers = array(1, 10, 2, 5, 1);
и так далие
Но может єсть какойто другой способ
решыл проблему, всем Спасибо!
Быстрый ответ:
Powered by dgreen
Здесь расположена полная версия этой страницы.