神奇的开根号模板

在codevs里发现的一份高精度开根号模板。

int l,last;
int work(int o,char *O,int I)
{
    char c,*D=O;
    if(o>0)
    {
        for(l=0;D[l];D[l++]-=10)
        {
            D[l++]-=120;
            D[l]-=110;
            while(!work(0,O,l))
                D[l]+=20;
            last=((D[l]+1032)/20);
        }
        //putchar(10);
    }
    else
    {
        c=o+(D[I]+82)%10-(I>l/2)*(D[I-l+I]+72)/10-9;
        D[I]+=I<0?0:!(o=work(c/10,O,I-1))*((c+999)%10-(D[I]+92)%10);
    }
    return o;
}

 C# winform按键需把keypreview设置成true

posted @ 2018-03-13 13:37  CtrlKismet  阅读(180)  评论(0编辑  收藏  举报