我提供一个算法哈。。
1.先完成所有A=1+1/2+1/3+1/4+....1/n;
2.然后看要减得部分有规律的。。分别是i=2,i=5,i=9,i=..为一个等差数列,,,减去两倍它就可以了
#include <stdio.h>
main()
{
float a=0,sum;
int n,i,j;
printf("please input the value
of n\n");
getch();
scanf("%d",&n);
for(i=1;i<=n;i++)
{
a+=(1/i);
}
if(n=1)
{
sum=a;
}
else{
for(i=2,j=3;i<=n;j++)
{
sum=a-2*(1/i);
i=i+j;
}}
printf("%f",sum);
getch();
}
貌似有点问题 就是在浮点什么转换的时候。。。我都昏了