當前位置:編程學習大全網 - 編程語言 - 編程 簡單的,題目有點多

編程 簡單的,題目有點多

1.

program a1;

var i,n,a:longint;

s:real;

begin

readln(n);

a:=1;

for i:=1 to n do

begin

s:=s+a*(1/i);

a:=-a;

end;

writeln(s:2:5);

end.

2.

FUNCTION gjdadd(x, y: STRING): STRING;

TYPE arr = ARRAY[1..127] OF INTEGER;

VAR

a, b, s: arr; z, zz: STRING[126];

i, lx, ly, l, k, t: INTEGER;

BEGIN

FOR i:=1 TO 127 DO BEGIN

a[i] := 0; b[i] := 0; s[i] := 0;

END;

lx := LENGTH(x); ly := LENGTH(y);

IF lx > ly THEN l := lx ELSE l := ly;

FOR i:=1 TO lx DO VAL(COPY(x, lx + 1 - i, 1), a[i], k);

FOR i:=1 TO ly DO VAL(COPY(y, ly + 1 - i, 1), b[i], k);

FOR i:=1 TO l DO BEGIN

s[i] := s[i] + a[i] + b[i];

IF s[i] >= 10 THEN BEGIN

s[i + 1] := 1; s[i] := s[i] MOD 10;

END;

END;

IF s[l + 1] = 0 THEN t := l ELSE t := l + 1;

z := '';

FOR i:=t DOWNTO 1 DO BEGIN

STR(s[i], zz); z := z + zz;

END;

gjdadd := z;

END;

VAR

i: INTEGER;

a, b, c: STRING;

BEGIN

a := '0'; b := '1'; WRITE(a, ' ', b, ' ');

FOR i:=3 TO 100 DO BEGIN

c := gjdadd(a, b); WRITELN(c, ' ');

a := b; b := c;

END;

END.

{當100項時,超過了qword的範圍,只能用高精度}

3.

program exLoop1_1;

var

x, i : integer;

begin

x := 1;

for i := 2 to 10 do

x := (x+1)*2;

writeln('They had ', x, ' jujubes ago.');

readln;

end.

program exLoop1_2;

var

x, i, temp : integer;

begin

x := 1024; // 據題意原來的棗子數肯定 >= 2的10次方,即 1024

while x < 2048 do

begin

temp := x;

for i := 1 to 9 do

temp := temp div 2-1;

if temp = 1 then break;

x := x+2;

end;

writeln('They had ', x, ' jujubes ago.');

readln;

end.

4.

Var a, b: Array[1..100] OF Longint;

k, temp, i, j, n, t, l: longint;

Function check(i: Longint): Boolean;

Varj: longint;

Begin

check := true;

for j:=2 To i-1 DO

if i mod j = 0 Then Begin check := false;

Exit;

End;

End;

begin

For i:=2 TO 100 Do

if check(i) Then Begin

inc(t);

a[t] := i;

End;

For i:=2 To 100 Do

Begin

n := i;

l := 0;

while n <> 1 Do

Begin

for j:=1 TO t Do

if n mod a[j] = 0 THen Begin

inc(l);

b[l] := a[j];

n := n Div a[j];

End;

End;

For j:=1 To l-1 DO

for k:=j + 1 To l DOif b[j] > b[k] Then Begin temp := b[j];

b[j] := b[k];

b[k] := temp;

End;

Write(i, ' = ', b[1]);

For j:=2 To l DO Write('*', b[j]);

Writeln;

End;

End.

5.

var i,j,sum:integer;

begin

for i:=2 to 1000 do begin

sum:=0;

for j:=1 to (i div 2) do

if i mod j=0 then inc(sum,j);

if sum=i then writeln(i);

end;

end.

7.

PROGRAM T75_026;

VAR

n:integer;

BEGIN

REPEAT

read(n);

UNTIL n>1;

REPEAT

IF odd(n)

THEN BEGIN

n:=3*n+1;

writeln(n);

END

ELSE BEGIN

n:=trunc(n/2);

writeln(n);

END

UNTIL n=1;

END.

  • 上一篇:如何編程動態顯示作品
  • 下一篇:編程爸爸辭職了
  • copyright 2024編程學習大全網