|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.08.2014, 20:25 | #1 |
Регистрация: 11.11.2008
Сообщений: 9
|
Рассчет остатка
Расчет сделать и в двумерный массив загнать данные
Есть массив 1000,2000,3000,4000,5000,950,750,30 0,200,100,5800 Необходимо провести расчет по строкам. Сумма в строке не должна превышать 6000 получаются примерно такие строки. 001. 1000,2000,3000 002. 4000,950,750,300 003. 5000,200,100 004. 5800 Либо в другой последовательности, но главное чтобы сумма строки не превышала 6000 На выходе массив arr[i][...,....,....,....] Бью второй день, не получается. //Функция подсчета суммы массива summa = function(m) { for(var s = 0, k = m.length; k; s += m[--k]); return s; } function sDecrease(i, ii) { // По убыванию if (i > ii) return -1; else if (i < ii) return 1; else return 0; } var input = new Array(5800,5950,5000,5000,4000,3000 ,2900,2700,2000,1000,950,750,300,20 0,100); var c=0; var ost=0; var ins=0; var arr=new Array(); input.sort(sDecrease); while (input.length>0) { arr[c]=new Array(); if (c==0) { ost=6000-input[0]; arr[0][0]=input[0]; input.splice(0,1); } else { ost=6000-summa(arr[c]); } if (ost>input[0]) { arr[c].push(input[0]); input.splice(0,1); } else { arr[c+1][0]=input[0]; input.splice(0,1); input.sort(sDecrease); c++; } } |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Рассчет IP-адресов | sunny_alice | Помощь студентам | 5 | 12.06.2014 11:04 |
Рассчет в двумерном массиве (С++) | Faraon9 | Помощь студентам | 2 | 08.12.2012 19:21 |
рассчет серверов | Enaken | Помощь студентам | 14 | 22.09.2012 13:07 |
рассчет в таблице | new_here | Microsoft Office Access | 4 | 21.10.2010 18:27 |
Рассчет времени по координатам | Квэнди | Свободное общение | 5 | 28.12.2006 12:59 |