Bulleyes.Paint.CountFor C# (CSharp) Method

CountFor() public method

public CountFor ( long radius, long paint ) : long
radius long
paint long
return long
        public long CountFor(long radius, long paint)
        {
            long rest = paint;
            long count = 0;
            long incr = 1;

            while (true)
            {
                while ((count + incr) * (2 * radius + 1 + 2 * (count + incr - 1)) <= paint)
                {
                    count += incr;
                    incr *= 2;
                }

                if (incr == 1)
                    break;

                incr /= 2;
            }

            return count;

            //for (int p = this.PaintFor(radius); p <= rest; p = this.PaintFor(radius))
            //{
            //    rest -= p;
            //    count++;
            //    radius += 2;
            //}

            //return count;
        }