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