主题:[讨论]十万火急呀!大牛来帮帮我呀!++++++++30!
梦幻神兵
[专家分:600] 发布于 2006-02-22 17:08:00
题目是:每个大于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个回复)
沙发
pascaler [专家分:150] 发布于 2006-02-23 18:08:00
终于写出来啦!测试过,没问题
{$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.
板凳
pascaler [专家分:150] 发布于 2006-02-23 18:12:00
呵呵~~第一次回答人家的问题,今天早上想了2节课![em2]
其实有些数是有2(我不知道还有没有更过)种分解式
如:1/4=1/(2*3)+1/(3*4)
或 1/4=1/(3*4)+...+1/(11+12)
3 楼
pascaler [专家分:150] 发布于 2006-02-23 18:22:00
其实这主要用到数列求和的知识,由数列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 楼
梦幻神兵 [专家分:600] 发布于 2006-02-25 17:18:00
谢谢了
5 楼
pascaler [专家分:150] 发布于 2006-02-25 20:53:00
不用!呵呵。[em11]终于有分了。有一点不足,就是没考虑容错的问题(例如输入2就会出现死循环),你自己再修改一下。[em11]
6 楼
梦幻神兵 [专家分:600] 发布于 2006-02-27 16:40:00
靠,题目就是要从2开始的呀!
7 楼
pascaler [专家分:150] 发布于 2006-03-03 17:33:00
你自己加一个判断语句呀~~这很简单的,谁都会
8 楼
梦幻神兵 [专家分:600] 发布于 2006-03-04 16:57:00
知道了
我来回复