I would use an array of structures. Consider:
fields: from to percentage cumulative
values: 0 10 0.08 0
10 50 0.07 0.80 (= (to-from)*percentage from row above)
50 500 0.06 0.80 + (50-10)*0.07 = 4.00
500 10000 0.05 4.00 + (500-50)*0.06 = 31.00
...
: , . , X , , X (.. from <= X < to), :
(X - from) * percentage + cumulative
.
, X, - - / , "" . ( , , , , , , , , ..)