回 帖 发 新 帖 刷新版面

主题:[讨论]十万火急呀!大牛来帮帮我呀!++++++++30!

题目是:每个大于2的自然数的倒数都是无穷级数:1/(2*3)、1/(3*4)、1/(4*5)、…中的有限个相继项这和(不包括它自己)。例如:1/3=1/(2*3)+1/(3*4)+1/(4*5)+1/(5*6),编程对键盘输入的任意自然数N(N>2),给出它的倒数分解式。

回复列表 (共8个回复)

沙发


终于写出来啦!测试过,没问题
{$n+}
var
    n,i,j,k:longint;
    daoshu,sum:extended;
begin
    readln(n);
    daoshu:=1/n;
    i:=0;
    repeat
        i:=i+1;
        j:=i;
        repeat
            j:=j+1;
            sum:=(j-i+1)/((i+1)*(j+2));
        until sum>=daoshu;
    until sum=daoshu;
    write('1/',n,'=','1/(',i+1,'*',i+2,')');
    for k:=i+1 to j do
        write('+1'(',k+1,'*',k+2,')');
end.

板凳


呵呵~~第一次回答人家的问题,今天早上想了2节课![em2]
其实有些数是有2(我不知道还有没有更过)种分解式
如:1/4=1/(2*3)+1/(3*4)

或 1/4=1/(3*4)+...+1/(11+12)

3 楼


其实这主要用到数列求和的知识,由数列1/(2*3),1/(3*4),1/(4*5)....
得通项公式(第n项是)1/((n+1)*(n+2))

又1/((n+1)*(n+2))=1/(n+1)-1/(n+2)

所以前N项的和是S(n)=1/2-1/3+1/3-1/4+1/4+1/5-....+1/(n+1)-1/(n+2)
                   =1/2-1/(n+2)

那么第i项到第j项相继项的和就是:前i项和减去前j-1项和=1/(i+1)-1/(j+2)
      =(j-i+1)/((i+1)*(j+2))

接着....不用说了,输入n,穷举找出对应的i和j

4 楼

谢谢了

5 楼


不用!呵呵。[em11]终于有分了。有一点不足,就是没考虑容错的问题(例如输入2就会出现死循环),你自己再修改一下。[em11]

6 楼

靠,题目就是要从2开始的呀!

7 楼


你自己加一个判断语句呀~~这很简单的,谁都会

8 楼

知道了

我来回复

您尚未登录,请登录后再回复。点此登录或注册