#include <cstdio>
#include <cstring>
#include <iostream>
#include <cmath>
using namespace std;
int l;
int work(int k,char *s,int I)
{
char c, *d=s ;
if(k>0)
{
for(l=0;d[l];d[l++]-=10)
{
d[l++]-=120;
d[l]-=110;
while(!work(0,s,l))
d[l]+=20;
putchar((d[l]+1032)/20);
}
putchar(10);
}
else
{
c=k+(d[I]+82)%10-(I>l/2)*(d[I-l+I]+72)/10-9;
d[I]+=I<0 ? 0 : !(k=work(c/10,s,I-1))*((c+999)%10-(d[I]+92)%10);
}
return k;
}
int main()
{
char s[1200];s[0]='0';
scanf("%s",s+1);
if(strlen(s)%2 == 1)
work(2,s+1,0);
else
work(2,s,0);
return 0;
}
wikioi3119高精度开根
最新推荐文章于 2018-05-06 18:14:10 发布