All pastes #831312 Raw Edit

Miscellany

public text v1 · immutable
#831312 ·published 2007-12-24 20:28 UTC
rendered paste body
#include<stdio.h>
#include<string.h>



void rev(char s[])
{
int c,i,j;

for(i=0,j=strlen(s)-1;i<j;i++,j--)
{
c=s[i];
s[i]=s[j];
s[j]=c;
}
}


char* sub(char a[],char b[])
{
int m=strlen(a),n=strlen(b);
int i;
int j;
int borrow=0;
char x[10000],y[10000];
strcpy(x,a);

strcpy(y,b);

rev(y);

for(i=0;i<(m-n);i++)
strcat(y,"0");

rev(x);



char res[10000];




for(j=0;j<m;j++)
{


x[j]-=borrow;

if((x[j]-'0')<(y[j]-'0'))
{
res[j]=x[j]-'0'+10-(y[j]-'0')+'0';
borrow=1;
}
else
{
res[j]=x[j]-'0'-(y[j]-'0')+'0';
borrow=0;
}

}
res[j]='\0';

if(res[strlen(res)-1]=='0')
res[strlen(res)-1]='\0';

rev(res);

return res;
}




int main()
{
	int i,x,carry=0,l,l1,x1,j,z;
	char num[1000],diff[1000],tmp[1000],ans[1000],ans1[1000],ans3[1000],t;
	for(z=0;z<10;z++)
	{
	scanf("%s",num);
	
	strcpy(tmp,num);
	scanf("%s",diff);
	if(strcmp(num,diff)==0)
	{
		printf("%s\n",num);
		printf("0\n");
		continue;
	}
	x=(int)num[0]-48;
	if(x%2!=0)
	{
		for(i=l-1;i>=0;i--)
		{
		
			if((int)num[i]-48==9)
			{
				num[i]='0';
			   
	 			continue;
			}
		
	 		x=(int)(num[i])-48;
			x=x+49;
			num[i]=(char)(x);
			break;
		}
		if((int)num[0]-48==0)
		{
			num[0]='1';
			num[l]='0';
			num[l+1]='\0';
		}


	}


	strcpy(ans,sub(num,diff));
		l=strlen(ans);
		
		t=0;
		for(i=0;i<l;i++)
		{
			if((int)ans[i]-48==0)
			{
				continue;
			}
				tmp[t++]=ans[i];
			    break;
		}
		for(j=i+1;j<l;j++)
		{
			tmp[t++]=ans[j];
		}

	tmp[t]='\0';
	strcpy(ans,tmp);
	l=strlen(ans);
		carry=0;
		for(i=0;i<l;i++)
		{
			x=(int)ans[i]-48;
			if(carry==1)
			{
				if(x%2!=0)
				{
					carry=1;
				}
				else
				{
					carry=0;
				}
				
				
				x=x/2+48+5;
				ans[i]=(char)x;
				continue;
			}
				if(x%2!=0)
				{
					carry=1;
				}
				else
				{
					carry=0;
				}
				x=(int)ans[i]-48;
				x=x/2+48;
				ans[i]=(char)x;


				
		}

		strcpy(ans3,sub(num,ans));
				l=strlen(ans);
		
		t=0;
		for(i=0;i<l;i++)
		{
			if((int)ans3[i]-48==0)
			{
				continue;
			}
				tmp[t++]=ans3[i];
			    break;
		}
		for(j=i+1;j<l;j++)
		{
			tmp[t++]=ans3[j];
		}

	tmp[t]='\0';
	strcpy(ans3,tmp);
		if(strcmp(ans3,ans)>0)
		{

		printf("%s\n",ans3);
	    printf("%s\n",ans);
		}
		else
		{
			printf("%s\n",ans);
	    printf("%s\n",ans3);
		}
	}
	return 0;
}