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

LVL 6
r3nderAsked:
Who is Participating?
 
Fernando SotoRetiredCommented:
Extension methods must be in a static class as shown below. Try it this way.

    
    public static class MyExtensions
    {
        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

0
 
r3nderAuthor Commented:
Thanks Fernando
0
 
Fernando SotoRetiredCommented:
Not a problem r3nder, glad I was able to help.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.