结果可以验证 s=1+1/(1*2)+1/(2*3)+...+1/(n*(n+1)) = 1+1-1/n+1
#include "stdafx.h"
#include
#include
// s=1+1/(1*2)+1/(2*3)+...+1/(n*(n+1))
#define N 1000
int _tmain(int argc, _TCHAR* argv[])
{
double dResult, dResult1;
int n=1;
dResult=1;
while(n
std::cout<
}
运行结果:
直接计算结果=1.999
参考验证结果=1.999
#include
main()
{
int n,i;
while(scanf("%d" , &n)!= EOF)
{
float sum=1;
for(i=1;i<=n;i++)
{
sum=sum+1.0/(i*(i+1));
}
printf("%f\n",sum);
}
}
简单的话就按照以上题目原本的顺序计算的思想做最简单的计算,如果楼主希望更加深入一点的,那就可以考虑使用递归来实现这个算法。
#include
float js(int n)
{
float m=0;
if(n<=0);
else
{
m=1.0/(n*(n+1))+js(n-1);
}
return m;
}
main()
{
int n;
float m=0;
while(scanf("%d",&n)!=EOF)
{
m=1+js(n);
printf("%f\n",m);
}
}
#include
void main()
{
int i,n;
double sum=1.0;
printf("Please input n:\n");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
sum=sum+1.0/(i*(i+1));
}
printf("sum=%lf",sum);
}
运行过了