1~100ビットの単純な加算

762 ワード

#include<stdio.h>

void main()

{

	char a[100];

	char b[100];

	int c[100]={0};

	int d[100]={0};

	int result[101]={0};

	int n=0,n1=0,i,j,k;

	int index=0;

	int flag=0;

	int e=0;

	gets(a);

	

	gets(b);

	while(a[n]!=0)

	{

		c[n]=a[n]-'0';

		n++;

	}

	while(b[n1]!=0)

	{

		d[n1]=b[n1]-'0';

		n1++;

	}

	

	e=n>n1?n:n1;

	for(i=n-1,j=n1-1,k=e;index<=e;i--,j--,k--,index++)

	{

		if(i<0)

		{

			i=0;

			c[i]=0;

		}

		if(j<0)

		{

			j=0;

			d[j]=0;

		}

		result[k]=(c[i]+d[j]+flag)%10;

		flag=(c[i]+d[j]+flag)/10;

		

		

	}

	for(i=0;i<=e;i++)

	{ if(result[i]==0&&i==0)

	continue;

	printf("%d",result[i]);

	}

}


eg:入力:
123
123
出力:246