回 帖 发 新 帖 刷新版面

主题:求一分数序列。

求一分数序列:
2/1,3/2,5/3,13/8,21/13????????
求出这个数列前20项之和。

回复列表 (共7个回复)

沙发

#include "stdio.h"
main()
{
   float  s=0,f1=2,f2=1,f=1,t,n;
   for(n=1;n<=20;n++)
   {
       s=s+f*f2/f1;
       t=f2;
       f1=f2
       f2=f1=t;
    }
   printf("s=%f\n",s);
}

板凳

a=1
b=2
for i=1 to 20
  s=s+b/a
  c=a+b
  a=b
  b=c
next
print s
可惜得到的不是分数形式,
需要分数形式的请把分母通分。

3 楼

defdbl a-z
a=1
b=2
s2=1
for i=1 to 20
  s2=s2*a
  c=a+b
  a=b
  b=c
next

a=1
b=2
for i=1 to 20
  s1=s1+b*s2/a
  c=a+b
  a=b
  b=c
next

print s1;"/";s2
实际应用中,分母的公倍数太大,无法约分运算了。

4 楼

2/1,3/2,5/3,13/8,21/13????????
a=2
b=1
?a/b
for i=1 to 19
t=a
a=a+b
b=t
?a/b
next i

 

5 楼

DECLARE SUB yuefen ()
COMMON SHARED sumfenzi AS DOUBLE, sumfenmu AS DOUBLE
CLS
DIM fenzi(1 TO 20) AS DOUBLE, fenmu(1 TO 20) AS DOUBLE
fenzi(1) = 2: fenmu(1) = 1
FOR i = 2 TO 20
fenzi(i) = fenmu(i - 1) + fenzi(i - 1)
fenmu(i) = fenzi(i - 1)
NEXT i
FOR i = 1 TO 20
PRINT fenzi(i); "/"; fenmu(i),
NEXT i
PRINT : PRINT : PRINT
FOR i = 2 TO 9
sumfenmu = fenmu(i) * fenmu(i - 1)
sumfenzi = fenzi(i) * fenmu(i - 1) + fenzi(i - 1) * fenmu(i)
CALL yuefen
fenzi(i) = sumfenzi
fenmu(i) = sumfenmu
PRINT sumfenzi; "/"; sumfenmu
NEXT i

SUB yuefen
IF sumfenzi MOD 2 = 0 AND sumfenmu MOD 2 = 0 THEN
sumfenzi = sumfenzi / 2: sumfenmu = sumfenmu / 2
ELSEIF sumfenzi MOD 3 = 0 AND sumfenmu MOD 3 = 0 THEN
sumfenzi = sumfenzi / 3: sumfenmu = sumfenmu / 3
ELSEIF sumfenzi MOD 5 = 0 AND sumfenmu MOD 5 = 0 THEN
sumfenzi = sumfenzi / 5: sumfenmu = sumfenmu / 5
ELSEIF sumfenzi MOD 7 = 0 AND sumfenmu MOD 7 = 0 THEN
sumfenzi = sumfenzi / 7: sumfenmu = sumfenmu / 7
END IF
END SUB
分数20项能找出来,但是和太大了,只能加前九项,最后一个和怎么没约分呢?请MOZ指正。大家也别笑话俺啊

6 楼

要把你子程序中的 elseif 改成两行
endif
if

7 楼

3Q

我来回复

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