标题:求各位大佬帮忙,求1/1*2+1/2*3+...+1/n*(n+1)直到某一项小于0.001为止
只看楼主
吴佳俊
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-4-5
结帖率:100%
已结贴  问题点数:5 回复次数:3 
求各位大佬帮忙,求1/1*2+1/2*3+...+1/n*(n+1)直到某一项小于0.001为止
#include<stdio.h>
int main()
{
    int n=1;
    double     k,S=0;
    k=(float)(1/(n*(n+1)));
    while(k>=0.001)
    {
        S+=(float)(1/(n*(n+1)));
        n++;
    }
    printf("%lf\n",S);
    return 0;
}
搜索更多相关主题的帖子: float int 小于 while printf 
2020-04-05 23:24
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
题目要求是 1/1*2+……
代码却是 1/(1*2)+……

…… = (float)(1/(n*(n+1)));
既然 1/(n*(n+1)) 的运算结果必然是0,为什么不直接写 …… = 0.0f ?

while(k>=0.001)
{
    S+=(float)(1/(n*(n+1)));
    n++;
}
既然 k 永远不变,那么不是一次都不执行,就是死循环。

一会儿 double,一会儿 float
2020-04-05 23:51
吴佳俊
Rank: 1
来 自:重庆
等 级:新手上路
帖 子:12
专家分:0
注 册:2020-4-5
得分:0 
回复 2楼 rjsp
那个我自己编的,就是有问题,后来越改越乱,希望得到大佬的帮助,编写一个正确的程序,再讲解一下
求1/(1*2)+1/(2*3)+1/(3*4)+...+1/(n*(n+1))直到某一项小于0.001为止  的和
上面的算式是数学的式子,编程计算
2020-04-06 00:03
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:5 
回复 3楼 吴佳俊
直到某一项小于0.001为止
那这一“小于0.001”的项要不要统计进 总和 里去?

若不进总和
程序代码:
#include <stdio.h>

int main( void )
{
    double s = 0;
    for( unsigned n=1; n*(n+1)<=1000; ++n )
        s += 1.0/(n*(n+1));
    printf( "%.3f\n", s );
}

若进总和
程序代码:
#include <stdio.h>

int main( void )
{
    double s = 0;
    for( unsigned n=1; (n-1)*n<=1000; ++n )
        s += 1.0/(n*(n+1));
    printf( "%.3f\n", s );
}

2020-04-06 11:39



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-500880-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014651 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved