C语言编程求以下公式的值 s=1+1⼀(1*2)+1⼀(2*3)+...+1⼀(n*(n+1))答案

C语言编程求以下公式的值 s=1+1/(1*2)+1/(2*3)+...+1/(n*(n+1))答案
2024-11-01 22:39:42
推荐回答(3个)
回答1:

结果可以验证 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 dResult1 = 1 + 1 - 1.0/(N+1);

std::cout< std::cout< return 0;
}

运行结果:

直接计算结果=1.999
参考验证结果=1.999

回答2:

#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);
}

}

回答3:

#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);
}
运行过了