谁能看懂下面这段代码逻辑? 输入的distance应该是两点间的距离,返回的v1应该是初速度。   public static int getStartV(int distance)
    {
        if( distance == 0 )
            return 0;
        else
        {
            int v1 = distance;
            int v2 = 0;            for( ;; )
            {
                v2 = (v1 + (distance/ v1) * 256)/2;
                if( ((v1 >= v2) ? v1 - v2 : v2 - v1) < 256 )
                    return v1;
                else
                    v1 = v2;
            }
        }
    }