function flop(a,b:longint):longint; forward; function flip(a,b:longint):longint; begin if (a = 0) then flip:=0 else flip:=a+flop(a-1,b); end; function flop(a,b:longint):longint; begin if (b = 0) then flop:=0 else flop:=b+flip(a,b-1); end;
-
Berapakah nilai yang dihasilkan dari pemanggilan fungsi flip(4,7)?
-
Berapakah nilai yang dihasilkan dari pemanggilan fungsi flop(100,200)?
-
Jika nilai awal a = 4 dan b = 7, maka nilai yang dihasilkan akan sama dengan:
flip = (4 + 7) + (3 + 6) + (2 + 5) + (1 + 4) + flip(0,3) = 32. -
Untuk flop:
flop(100,200) = (200 + 100) + (199 + 99) + (198 + 98) + … + (101 + 1) + flop(0,100)
= (200 + 1) + (199 + 2) + (198 + 3) + … + (101 + 100) + flop(0,100).
Perlu diketahui bahwa flop(0,100) akan bernilai 100, sedangkan flip(0,100) bernilai 0, sehingga flop(100,200) = 201*100 + 100 = 20200.
Fungsi flip dan flop akan menambahkan a dan b dari nilai semula sampai salah satunya bernilai 0. Flip menggunakan nilai a, sedangkan flop menggunakan nilai b.