Knapsack problem/Continuous: Difference between revisions

m
→‎{{header|Sidef}}: better indentation
(Added Befunge example.)
m (→‎{{header|Sidef}}: better indentation)
Line 2,807:
[:salami, 3.0, 95],
[:sausage, 5.9, 98],
].sort {|a,b| b[2]/b[1] <=> a[2]/a[1] };
 
var (limit, value) = (15, 0);
Line 2,813:
 
items.each { |item|
var ratio = (item[1] > limit ? limit/item[1] : 1);
value += item[2]*ratio;
limit -= item[1];
if (ratio == 1) {
printf("%-8s %4s %7.2f %6.2f\n", item[0], 'all', item[1], item[2]);
}
else {
printf("%-8s %-4.2f %7.2f %6.2f\n", item[0], ratio, item[1]*ratio, item[2]*ratio);
break;
}
};
 
say "#{'-'*28}\ntotal value: #{'%.14g' % value }";</lang>
{{out}}
<pre>
2,747

edits