c++ 的高精度(至少1000位)斐波那契数列问题 求改正代码
1个回答
展开全部
应该把memset()调用放在for循环中,每次计算之前都应该将a和b“清零”,修改如下:
#include
#include
using
namespace
std;
char
sum[1200];
int
s=0,m=0,n;
int
main()
{
cin>>n;
string
s1,s2;
int
a[1200],b[1200];
int
he,i;
//注意这里
s1="1";
s2="1";
for(m=2;m
b[0]?a[0]:b[0]);
for(i=1;i<=he;i++)
{
a[i]+=b[i];
a[i+1]+=a[i]/10;
a[i]%=10;
}
he++;
while((a[he]==0)&&(he>1))
he--;
for(i=he,s=0;i>=1;i--,s++)
{
sum[s]=a[i]+'0';
}
s1=s2;
s2=sum;
}
cout<
评论
0
0
0
加载更多
#include
#include
using
namespace
std;
char
sum[1200];
int
s=0,m=0,n;
int
main()
{
cin>>n;
string
s1,s2;
int
a[1200],b[1200];
int
he,i;
//注意这里
s1="1";
s2="1";
for(m=2;m
b[0]?a[0]:b[0]);
for(i=1;i<=he;i++)
{
a[i]+=b[i];
a[i+1]+=a[i]/10;
a[i]%=10;
}
he++;
while((a[he]==0)&&(he>1))
he--;
for(i=he,s=0;i>=1;i--,s++)
{
sum[s]=a[i]+'0';
}
s1=s2;
s2=sum;
}
cout<
评论
0
0
0
加载更多
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询