; Logo version to giftstoday :n ifelse :n = 1 [op 1] [op :n + giftstoday (:n - 1)] end to giftssofar :n ifelse :n = 1 [op giftstoday :n] [op (giftstoday :n) + giftssofar (:n - 1)] end -- HyperTalk version function giftstoday n if n = 1 then return 1 else return n + giftstoday (n - 1) end if end giftstoday function giftssofar n if n = 1 then return giftstoday(n) else return giftstoday(n) + giftssofar(n - 1) end if end giftssofar (* Pascal version *) (* Subprograms only, main will call appropriate subprogram *) function giftstoday (n : integer) :integer; begin if n = 1 then giftstoday := 1 else giftstoday := n + giftstoday (n - 1) end; function giftssofar (n : integer) :integer; begin if n = 1 then giftssofar := giftstoday(n) else giftssofar := giftstoday(n) + giftssofar(n - 1) end; /* C version */ /* Subprograms only, main will call appropriate subprogram */ int giftstoday (n) { if n == 1 then return (1); else return( n + giftstoday (n - 1)); } int giftssofar (n) { if n == 1 then return( giftstoday(n)); else return( giftstoday(n) + giftssofar(n - 1)); } REM BASIC version , input 12 for n 10 Input n 20 K = 0 30 For i=1 to n 40 For j=1 to i 50 k = k + j 60 Next j 70 Next i 80 Print k 90 End TI-82 version ============= PROGRAM:CMAS : Input N : 0 -> K : For (I, 1, N, 1) : For (J, 1, I, 1) : K + J -> K : End : End : Disp K Note : Input 12 for n