Link to home
Start Free TrialLog in
Avatar of r3nder
r3nderFlag for United States of America

asked on

divide a number into parts so the resulting sum is equal to the input

I am trying to use this method but I keep getting an error "Extension method must be defined in a non-generic static class"
public static IEnumerable<int> PartitionMeInto(this int value, int count)
        {
            if (count <= 0) throw new ArgumentException("count must be greater than zero.", "count");
            var result = new int[count];

            int runningTotal = 0;
            for (int i = 0; i < count; i++)
            {
                var remainder = value - runningTotal;
                var share = remainder > 0 ? remainder / (count - i) : 0;
                result[i] = share;
                runningTotal += share;
            }

            if (runningTotal < value) result[count - 1] += value - runningTotal;

            return result;
        }

Open in new window

I call  it by
int value = numpulses;
                var result = value.PartitionMeInto(25);

Open in new window

ASKER CERTIFIED SOLUTION
Avatar of Fernando Soto
Fernando Soto
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of r3nder

ASKER

Thanks Fernando
Not a problem r3nder, glad I was able to help.