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))答案...
C语言编程求以下公式的值 s=1+1/(1*2)+1/(2*3)+...+1/(n*(n+1))答案
展开
3个回答
展开全部
结果可以验证 s=1+1/(1*2)+1/(2*3)+...+1/(n*(n+1)) = 1+1-1/n+1
#include "stdafx.h"
#include <iostream>
#include <iomanip>
// 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<N) { dResult += 1.0/n/(n+1); n++;}
dResult1 = 1 + 1 - 1.0/(N+1);
std::cout<<std::setprecision(5)<<"直接计算结果="<<dResult<<std::endl;
std::cout<<std::setprecision(5)<<"参考验证结果="<<dResult1<<std::endl;
return 0;
}
运行结果:
直接计算结果=1.999
参考验证结果=1.999
#include "stdafx.h"
#include <iostream>
#include <iomanip>
// 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<N) { dResult += 1.0/n/(n+1); n++;}
dResult1 = 1 + 1 - 1.0/(N+1);
std::cout<<std::setprecision(5)<<"直接计算结果="<<dResult<<std::endl;
std::cout<<std::setprecision(5)<<"参考验证结果="<<dResult1<<std::endl;
return 0;
}
运行结果:
直接计算结果=1.999
参考验证结果=1.999
展开全部
#include <stdio.h>
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<stdio.h>
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<stdio.h>
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);
}
运行过了
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);
}
运行过了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询