引用大数加法,它的基本思想是将一串比较大的数,以字符串的形式存进;
然后在定义数组,让字符串中的字符减‘0’后倒叙存进数组,再依据让数组
中的数进行加,如果两数相加等于10,将下一个i+1的数组加1;现在的a[i]-1;
最后再让它倒序输出即可
#include<stdio.h>
#include<string.h>
char a[100],a1[100];
int b[100],b1[100];
int main()
{
int max,j,i,k;
int d;
scanf("%s" , a) ;
scanf("%s" , a1) ;//定义字符串
memset( b , 0 , sizeof(b) ) ;
memset( b1 , 0 , sizeof(b1) ) ;//将数组中的所有数全部化为0;
int c=strlen(a);
int c1=strlen(a1);
if(c>c1) max=c;//判断两个字符串的长度,因为在加的时候,是以最长的相加;
else max=c1;
for(j=0,i=c-1; i>=0; i--)
{
b[j++]=a[i]-'0';//将字符串中的字符倒叙存进数组中
}
for(j=0,i=c1-1; i>=0; i--)
{
b1[j++]=a1[i]-'0';
}
sum(max,b,b1);
for( i = 100 ; i >= 0; i -- )
{
if( b[i] != 0 )break;//淘汰掉数组中为0的数字
}
for(; i>=0; i--)
printf("%d" ,b[i]) ;//倒序输出
printf("\n");
return 0;
}
int cheng(int max,int b[],int b1[])//大数乘法
{
int i;
for(i=0; i<max; i++)
{
b[i]=b[i]*b1[i];
while(b[i]>=10)//原理差不多与大数加法只需改动这里就行
{
b[i]=b[i]-10;
b[i+1]=b[i+1]+1;
}
}
return 0;
}
int sum(int max,int b[],int b1[])//大数加法
{
int i;
for(i=0; i<max; i++)
{
b[i]=b[i]+b1[i];
if(b[i]>9)
{
b[i]=b[i]-10;
b[i+1]=b[i+1]+1;
}
}
return 0;
}
然后在定义数组,让字符串中的字符减‘0’后倒叙存进数组,再依据让数组
中的数进行加,如果两数相加等于10,将下一个i+1的数组加1;现在的a[i]-1;
最后再让它倒序输出即可
#include<stdio.h>
#include<string.h>
char a[100],a1[100];
int b[100],b1[100];
int main()
{
int max,j,i,k;
int d;
scanf("%s" , a) ;
scanf("%s" , a1) ;//定义字符串
memset( b , 0 , sizeof(b) ) ;
memset( b1 , 0 , sizeof(b1) ) ;//将数组中的所有数全部化为0;
int c=strlen(a);
int c1=strlen(a1);
if(c>c1) max=c;//判断两个字符串的长度,因为在加的时候,是以最长的相加;
else max=c1;
for(j=0,i=c-1; i>=0; i--)
{
b[j++]=a[i]-'0';//将字符串中的字符倒叙存进数组中
}
for(j=0,i=c1-1; i>=0; i--)
{
b1[j++]=a1[i]-'0';
}
sum(max,b,b1);
for( i = 100 ; i >= 0; i -- )
{
if( b[i] != 0 )break;//淘汰掉数组中为0的数字
}
for(; i>=0; i--)
printf("%d" ,b[i]) ;//倒序输出
printf("\n");
return 0;
}
int cheng(int max,int b[],int b1[])//大数乘法
{
int i;
for(i=0; i<max; i++)
{
b[i]=b[i]*b1[i];
while(b[i]>=10)//原理差不多与大数加法只需改动这里就行
{
b[i]=b[i]-10;
b[i+1]=b[i+1]+1;
}
}
return 0;
}
int sum(int max,int b[],int b1[])//大数加法
{
int i;
for(i=0; i<max; i++)
{
b[i]=b[i]+b1[i];
if(b[i]>9)
{
b[i]=b[i]-10;
b[i+1]=b[i+1]+1;
}
}
return 0;
}