计算e一万位问题!

来源:百度知道 编辑:UC知道 时间:2024/07/01 04:53:51
#include "stdio.h"
void main()
{int N=10009,n=N;
int a[10009],s[10009],b[10009],k;
while(--n)
s[n]=0;
s[1]=5;
s[0]=2;
n=N;
a[0]=0;
while(--n)a[n]=0;
a[1]=5;
b[0]=0;
for(k=3;k<=(N+43)/3;++k)
{
for(n=1;n<N;++n)
{
b[n]=(10*b[n-1]+a[n])%k;
a[n]=(10*b[n-1]+a[n])/k;
s[n]=s[n]+a[n];
if(s[n]>=10)
{
s[n-1]=s[n]/10;
s[n]=s[n]%10;
}
}
}
for(n=N-1;n>0;--n)
if(s[n]>=10)
{s[n-1]=s[n-1]+s[n]/n;
s[n]=s[n]%10;
}
for(n=0;n<N-8;++n)
{if(n%70==0)
printf("\n");
printf("%d",s[n]);
}

出问题了,^_^,运行不正确哈
请大侠帮我修改一下吧,我没分的

最后少了一个},我加了就能运行了哈
#include "stdio.h"
void main()
{
int N=10009,n=N;
int a[10009],s[10009],b[10009],k;
while(--n)
s[n]=0;
s[1]=5;
s[0]=2;
n=N;
a[0]=0;
while(--n)a[n]=0;
a[1]=5;
b[0]=0;
for(k=3;k<=(N+43)/3;++k)
{
for(n=1;n<N;++n)
{
b[n]=(10*b[n-1]+a[n])%k;
a[n]=(10*b[n-1]+a[n])/k;
s[n]=s[n]+a[n];
if(s[n]>=10)
{
s[n-1]=s[n]/10;
s[n]=s[n]%10;
}
}
}
for(n=N-1;n>0;--n)
if(s[n]>=10)
{
s[n-1]=s[n-1]+s[n]/n;
s[n]=s[n]%10;
}
for(n=0;n<N-8;++n)
{
if(n%70==0)
printf("\n");
printf("%d",s[n]);
}
}//这里加一个“}”