Considerate le seguenti sei funzioni, con argomento N (un intero non negativo).
Ciascuna di esse calcola un qualche valore scelto tra: N, 2N , N2, N3, 2N, N!, NN.
Dovete stabilire qual è il valore calcolato da ogni funzione.
-
FUNCTION A(N: INTEGER): INTEGER; BEGIN IF N > 0 THEN A:=A(N-1)+A(N-1) ELSE A:=1 END;
-
FUNCTION B(N: INTEGER): INTEGER; BEGIN IF N > 0 THEN B:=B(N-1)+2*N-1 ELSE B:=0 END;
-
FUNCTION C(N: INTEGER): INTEGER; VAR I, R: INTEGER; BEGIN R:=1; FOR I:=1 TO N DO R:=R+R; C:=R END;
-
FUNCTION D(N: INTEGER): INTEGER; VAR I, R: INTEGER; BEGIN R:=1; FOR I:=1 TO N DO R:=R*I; D:=R END;
-
FUNCTION E(N: INTEGER): INTEGER; VAR I, R: INTEGER; BEGIN R:=0; FOR I:=1 TO N DO R:=R+N; E:=R END;
-
FUNCTION F(N: INTEGER): INTEGER; BEGIN IF N > 1 THEN F:=N*F(N-1) ELSE F:=1 END;
Note
- potrebbero esserci doppioni: più funzioni potrebbero calcolare lo stesso valore;
- N! = 1x2x3….xN; quindi 3!=6 e 5!=120;
- si assume che 0!=1.