#include
#include
#define SIZE 200
typedef struct node{
int len,num[SIZE];
}hugeint;
hugeint times(hugeint
#include
#include
#define SIZE 200
typedef struct node{
int len,num[SIZE];
}hugeint;
hugeint times(hugeint a,hugeint b)
{
int i,j;
hugeint ans;
memset(ans.num,0,sizeof(ans.num));
for(i=1;i0)
ans.len=a.len b.len;
else
ans.len=a.len b.len-1;
return ans;
}
hugeint add(hugeint a,hugeint b)
{
int i;
hugeint ans;
memset(ans.num,0,sizeof(ans.num));
if(a.len>b.len)
ans.len=a.len;
else
ans.len=b.len;
for(i=1;i0)
ans.len ;
return ans;
}
hugeint average(hugeint a,hugeint b)
{
int i;
hugeint ans;
ans=add(a,b);
for(i=ans.len;i>=2;i--)
{
ans.num[i-1] =ans.num[i]%2*10;
ans.num[i]/=2;
}
ans.num[1]/=2;
if(ans.num[ans.len]==0)
ans.len--;
return ans;
}
hugeint plustwo(hugeint a)
{
int i;
hugeint ans;
ans=a;
ans.num[1] =2;
i=1;
while((i=10))
{
ans.num[i 1] =ans.num[i]/10;
ans.num[i]%=10;
i ;
}
if(ans.num[ans.len 1]>0)
ans.len ;
return ans;
}
int over(hugeint a,hugeint b)
{
int i;
if(a.lenb.len)
return 1;
for(i=a.len;i>=1;i--)
{
if(a.num[i]b.num[i])
return 1;
}
return 0;
}
int main()
{
char s[SIZE];
int i;
hugeint target,left,middle,right;
scanf("%s",s);
memset(target.num,0,sizeof(target.num));
target.len=strlen(s);
for(i=1;i=1;i--)
printf("%d",left.num[i]);
printf("
");
return 0;
}
展开
全部