2006 NPSC F. 費波那星
費波那進位法,通過原因不明
/************************************************************/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
char x[1001],y[1001];
while(scanf("%s",x)==1)
{
if(x[0]==48&&strlen(x)==1) break;
scanf("%s",y);
int n=strlen(x),m=strlen(y),max=0,flag=0;
int ans[1005]={0},a,b,c;
for(a=0;a<n;a++)
ans[a]=ans[a]+x[a]-48;
for(a=0;a<m;a++)
ans[a]=ans[a]+y[a]-48;
for(a=0;a<=1004;a++)
{
if(ans[a]==1&&ans[a+1]==1)
{
ans[a]--;
ans[a+1]--;
ans[a+2]=ans[a+2]+1;
flag=1;
}
if(ans[a]==2&&a>=2)
{
ans[a+1]=ans[a+1]+1;
ans[a-2]=ans[a-2]+1;
ans[a]=0;
flag=1;
}
if(ans[a]==2&&a==0)
{
ans[a+1]=ans[a+1]+1;
flag=1;
ans[a]=0;
}
if(ans[a]==2&&a==1)
{
ans[a+1]=ans[a+1]+1;
ans[a-1]=ans[a-1]+1;
ans[a]=0;
flag=1;
}
if(ans[a]==3)
{
ans[a+2]=ans[a+2]+1;
ans[a-1]=ans[a-1]+1;
ans[a]=0;
flag=1;
}
if(ans[a]==1&&ans[a-1]==1)
{
ans[a]--;
ans[a-1]--;
ans[a+1]=ans[a+1]+1;
flag=1;
}
if(flag==1&&a==1004) {a=-1;flag=0;}
}
for(a=1003;a>=0;a--)
if(ans[a]!=0) {max=a+1;break;}
for(a=0;a<max;a++)
printf("%d",ans[a]);
printf("\n");
}
return 0;
}