在处理大数的运算时,一般采用数组去模拟,下面介绍大数的加、减、乘、除四则运算的实现方法。 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;
- }
|