
11111x666666+77778x33333用准确计算
5个回答
展开全部
7407325926+2592574074=9999900000
可以用高精度计算:高精度乘法:
#include <stdio.h>
#include <string.h>
#include<iostream>
using namespace std;
int main()
{
char m[555],n[555],temp[555];
int i,j,len_m,len_n;
int a[555]={0},b[555]={0},c[1111]={0};
cin>>m>>n;
if(strlen(m)<strlen(n))
{
strcpy(temp,m);
strcpy(m,n);
strcpy(n,temp);
}
len_m =strlen(m);
for(i=0;i<=len_m -1;i++)
a[i]=m[len_m -1 -i]-'0';
len_n=strlen(n);
for(i=0;i<=len_n -1;i++)
b[i]=n[len_n -1 -i]-'0';
for(i=0;i<len_n;i++)
for(j=0;j<len_m;j++)
c[i+j]+=a[j]*b[i];
for(i=0;i<2*len_m;i++)
if(c[i]>=10)
{
c[i+1]+=c[i]/10;
c[i]%=10;
}
i=2*len_m;
while(c[i]==0) i--;
if(i<0) cout<<"0";
else
{
for(;i>=0;i--)
cout<<c[i];
}
return 0;
}
加法:
#include<iostream>
#include<string>
#include<memory.h>
using namespace std;
int i,j,l1,l2;string s1,s2;
void add(const int a[1000],const int b[1000],int c[1000])
{
int l=(l1>l2)?l1:l2;
for(i=1;i<=l;i++)
{
c[i]=c[i]+a[i]+b[i];
c[i+1]=c[i+1]+c[i]/10;
c[i]=c[i]%10;
}
if(c[l+1]>0)c[0]=l+1;else c[0]=l;
return;
}
int main()
{
int a[1000],b[1000],c[1000];
cin>>s1>>s2;
l1=s1.length();l2=s2.length();
for(i=1;i<=l1;i++)a[i]=s1[l1-i]-48;
for(i=1;i<=l2;i++)b[i]=s2[l2-i]-48;
add(a,b,c);
for(i=c[0];i>=1;i--)cout<<c[i];
return 0;
}
可以用高精度计算:高精度乘法:
#include <stdio.h>
#include <string.h>
#include<iostream>
using namespace std;
int main()
{
char m[555],n[555],temp[555];
int i,j,len_m,len_n;
int a[555]={0},b[555]={0},c[1111]={0};
cin>>m>>n;
if(strlen(m)<strlen(n))
{
strcpy(temp,m);
strcpy(m,n);
strcpy(n,temp);
}
len_m =strlen(m);
for(i=0;i<=len_m -1;i++)
a[i]=m[len_m -1 -i]-'0';
len_n=strlen(n);
for(i=0;i<=len_n -1;i++)
b[i]=n[len_n -1 -i]-'0';
for(i=0;i<len_n;i++)
for(j=0;j<len_m;j++)
c[i+j]+=a[j]*b[i];
for(i=0;i<2*len_m;i++)
if(c[i]>=10)
{
c[i+1]+=c[i]/10;
c[i]%=10;
}
i=2*len_m;
while(c[i]==0) i--;
if(i<0) cout<<"0";
else
{
for(;i>=0;i--)
cout<<c[i];
}
return 0;
}
加法:
#include<iostream>
#include<string>
#include<memory.h>
using namespace std;
int i,j,l1,l2;string s1,s2;
void add(const int a[1000],const int b[1000],int c[1000])
{
int l=(l1>l2)?l1:l2;
for(i=1;i<=l;i++)
{
c[i]=c[i]+a[i]+b[i];
c[i+1]=c[i+1]+c[i]/10;
c[i]=c[i]%10;
}
if(c[l+1]>0)c[0]=l+1;else c[0]=l;
return;
}
int main()
{
int a[1000],b[1000],c[1000];
cin>>s1>>s2;
l1=s1.length();l2=s2.length();
for(i=1;i<=l1;i++)a[i]=s1[l1-i]-48;
for(i=1;i<=l2;i++)b[i]=s2[l2-i]-48;
add(a,b,c);
for(i=c[0];i>=1;i--)cout<<c[i];
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
11111x666666+77778x33333
=11111x2x33333+77778x33333
=(22222+77778)x33333
=100000x33333
=3333300000
=11111x2x33333+77778x33333
=(22222+77778)x33333
=100000x33333
=3333300000
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
11111×666666+77778×33333
=33333×222222+77778×33333
=33333×(222222+77778)
=33333×300000
=9999900000
=33333×222222+77778×33333
=33333×(222222+77778)
=33333×300000
=9999900000
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
11111x66666+77778x33333
=11111×2×33333+77778×33333
=22222×33333+77778×33333
=(22222+77778)×33333
=100000×33333
=3333300000
=11111×2×33333+77778×33333
=22222×33333+77778×33333
=(22222+77778)×33333
=100000×33333
=3333300000
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
题中多了一个6,无法简算
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询