大数加法与乘法
发布时间:2020-12-14 02:26:30 所属栏目:大数据 来源:网络整理
导读:( 1 )加法 #includestdio.h #includestring.h #define max_len 200 int main(){ int i,j; int a[max_len+ 20 ],b[max_len+ 20 ]; char s1[max_len+ 20 ],s2[max_len+ 20 ]; while ( scanf ( "%s%s" ,s1,s2)!=EOF) { memset (a, 0 , sizeof (a)); /*是对a进
(1)加法
#include<stdio.h>
#include<string.h>
#define max_len 200
int main()
{
int i,j;
int a[max_len+20],b[max_len+20];
char s1[max_len+20],s2[max_len+20];
while(scanf("%s%s",&s1,&s2)!=EOF)
{
memset(a,0,sizeof(a));/*是对a进行初始化,使其值都为零*/
memset(b,sizeof(b));
int len1=strlen(s1);/*不要忘记这里写len1数据类型*/
for(j=0,i=(len1-1);i>=0;i--)
a[j++]=s1[i]-'0';
int len2=strlen(s2);
for(j=0,i=(len1-1);i>=0;i--)
b[j++]=s2[i]-'0';
for(i=0;i<max_len;i++)
{
a[i]+=b[i];
if(a[i]>=10)
{
a[i]-=10;
a[i+1]+=1;
}
}
for(i=max_len;(i>=0)&&(a[i]==0);i--);/*用for循环*/
if(i>=0)
{
for(;i>=0;i--)
printf("%d",a[i]);/*一定要记住这几步!!!*/
}
else
printf("0");
printf("n");
}
return 0;
}
------------------------------------------------------------------
(2)乘法
#include<stdio.h>
#include<string.h>
#define max_len 200
int main()
{
int i,b[max_len+20],c[max_len*2+20];
char s1[max_len+20],&s2)!=EOF)
{
memset(a,sizeof(a));
memset(b,sizeof(b));
memset(c,sizeof(c));
int len1=strlen(s1);
for(j=0,i=(len1-1);i>=0;i--)
a[j++]=s1[i]-'0';
int len2=strlen(s2);
for(j=0,i=(len1-1);i>=0;i--)
b[j++]=s2[i]-'0';
for(i=0;i<len1;i++)
{
for(j=0;j<len2;j++)
{
c[i+j]=a[i]*b[j];
if(a[i+j]>=10)
{
c[i+j]%=10;
c[i+j+1]+=(a[i+j]/10);
}
}
}
for(i=max_len*2;(i>=0)&&(c[i]==0);i--);
if(i>=0)
{
for(;i>=0;i--)
printf("%d",c[i]);
}
else
printf("0");
printf("n");
}
return 0;
}
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |