回 帖 发 新 帖 刷新版面

主题:有几道题不会!!!!!!快来帮帮我!

1、外出旅游的几位朋友决定次日早晨共分一筐苹果。天刚亮,第一个人醒来,他先拿了一个,再把筐里的八分之一拿走;第二个人醒来,先拿两个,再把筐里的八分之一拿走;第三个人醒来,先拿三个,再拿走筐里的八分之一;…每个人依次照此方法拿出各人的苹果,最后筐里的苹果全部拿完,他们每人所拿到的苹果数正巧一样多。求原先筐里的苹果数和人数。

2、某登山队员第一天登上山峰高度的一半又24米; 第二天登上余下高度的一半又24米;每天均如此。到第七天,距山顶还剩91米。求此山峰的高度?

3、给出某整数N,将N写成因数相乘的形式。如: N=12,输出: 12=1*2*2*3

4、Faibonacci数列前几项为: 0,1,1,2,3,5,8,…,其规律是从第三项起, 每项均等于前两项之和。求前30项,   并以每行5个数的格式输出。

5、求S= 1-1/2 +1/3-1/4+1/5-1/6+ ……(求前N项的和)

回复列表 (共2个回复)

沙发

1、人数:8 - 1 = 7
   苹果数:(8 - 1) * (8 - 1) = 49
2、
VAR
   i, s: INTEGER;
BEGIN
    s := 91;
    FOR i:=1 TO 6 DO BEGIN
        s := (s + 24) * 2;
    END;
    WRITELN(s);
END;
运行结果:8848
3、
FUNCTION isprime(m: INTEGER): BOOLEAN;
VAR
   i: INTEGER; f: BOOLEAN;
BEGIN
     f := TRUE;
     IF m = 1 THEN f := FALSE;
     FOR i:=2 TO TRUNC(SQRT(m)) DO BEGIN
         IF m MOD i = 0 THEN BEGIN
            f := FALSE;
            BREAK;
         END;
     END;
     isprime := f
END;
TYPE
    arr = ARRAY[1..3000] OF INTEGER;
VAR
   i, r, s, t: INTEGER; k: REAL; f1: BOOLEAN; a: arr;
BEGIN
     READLN(s);
     t := 1; r := 0;
     REPEAT
           INC(t);
           f1 := isprime(t);
           IF f1 THEN BEGIN
              INC(r);
              a[r] := t;
           END;
     UNTIL r = 3000;
     IF isprime(s) THEN BEGIN
        WRITELN(s, ' = ', s);
     END ELSE BEGIN
       k := s;
       WRITE(s, ' = ');
       i := 1;
       REPEAT
            IF k / a[i] = TRUNC(k / a[i]) THEN BEGIN
               k := k / a[i];
               IF k = 1 THEN BEGIN
                  WRITELN(a[i]);
               END ELSE BEGIN
                  WRITE(a[i], ' * ');
               END;
            END ELSE BEGIN
               INC(i);
            END;
       UNTIL k = 1;
     END;
END.
质数表里只有前3000个质数,所以如果你输入的数过大,会显示出错信息。

板凳

4、
TYPE arr = ARRAY[1..30] OF LONGINT;
VAR
   i: INTEGER; a: arr;
BEGIN
    WRITE('1', '   2'); a[1] := 1; a[2] := 2;
    FOR i:=3 TO 30 DO BEGIN
        a[i] := a[i - 1] + a[i - 2]; WRITE(a[i], '   ');
        IF i MOD 5 = 0 THEN WRITELN; 
    END;
END.
5、
VAR
   s, n, i, f: INTEGER;
BEGIN
    READLN(n);
    s := 1;
    FOR i:=2 TO n DO BEGIN
        IF i MOD 2 = 0 THEN f := -1 ELSE f := 1;
        s := s + f * (1 / i);
    END;
    WRITELN(s);
END;

我来回复

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