在处理大数的运算时,一般采用数组去模拟,下面介绍大数的加、减、乘、除四则运算的实现方法。 1.加法。 如: Input: 123456789123456789123456789 1 Output:123456789123456789123456790 输入采用字符数组保存,然后将输入存在整形数组里,然后逐位相加即可,同时注意进位处理。
#include<stdio.h>
#include<string.h>
int max(int x,int y)
{
if(x>y)
return x;
else
return y;
}
int main(void)
{
char str1[510],str2[510];
while(scanf("%s %s",str1,str2)==2)
{
int a[510]={0},b[510]={0},c[510]={0},i;
int m,n,max1=0;
m=strlen(str1);
n=strlen(str2);
max1=max(m,n);
for(i=0;i<max1;i++)
{
a[m-i-1]=str1[i]-48;
b[n-i-1]=str2[i]-48;
}
for(i=0;i<max1;i++)
c[i]=a[i]+b[i];
for(i=0;i<max1;i++)
{
c[i+1]=c[i]/10+c[i+1];
c[i]=c[i]%10;
}
if(c[max1]!=0)
{
for(i=max1;i>=0;i--)
printf("%d",c[i]);
}
else
{
for(i=max1-1;i>=0;i--)
printf("%d",c[i]);
}
printf("\n");
}
return0;
}
|
感谢分享