在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; }
原文地址:https://www.cnblogs.com/CtrlKismet/p/8556164.html
时间: 2024-11-09 12:24:45