# Math Help - Recursive algorithm

1. ## Recursive algorithm

Give a recursive algorithm for finding the sum of the first n positive integer.

Procedure sum of integer ( n : positive integer )
if n<= 0
then sum of integer(n) := 0
else sum of integer(n) := n+ sum of integer(n)

2. if n<= 0
then sum of integer(n) := 0
else sum of integer(n) := n+ sum of integer(n)
That should be
else sum of integer(n+1) = sum of integer(n) + 1

3. Originally Posted by bhuvan
Give a recursive algorithm for finding the sum of the first n positive integer.

Procedure sum of integer ( n : positive integer )
if n<= 0
then sum of integer(n) := 0
else sum of integer(n) := n+ sum of integer(n)

You have to have express sum_of_integer(n) in terms of sum_of_integer(n-1) so:

Also as n is declared as a positive integer you cannot test if it is <=0

Code:
Procedure sum_of_integer ( n : positive integer )
if n== 1
then
sum_of_integer := 1
else
sum_of_integer := 1+ sum_of_integer(n-1)
CB

4. Thank you very much for your reply but i do not understand the logic

Procedure sum_of_integer ( n : positive integer )
if n== 1
then
sum_of_integer(n) := 1
else
sum_of_integer(n) := 1+ sum_of_integer(n-1)
what is the value of sum_of_integer(n-1) ?? if we take n = 2 if you can describe little bit ?? appreciate your reply.

Thanks

5. Originally Posted by bhuvan
Thank you very much for your reply but i do not understand the logic

Procedure sum_of_integer ( n : positive integer )
if n== 1
then
sum_of_integer(n) := 1
else
sum_of_integer(n) := 1+ sum_of_integer(n-1)
what is the value of sum_of_integer(n-1) ?? if we take n = 2 if you can describe little bit ?? appreciate your reply.

Thanks
Well it is confusing as I retained your confusion of the name of the procedure (it should be a function by the way) and the name of the return value, try:
Code:
Function sum_of_integer ( n : positive integer )
if n== 1
then
return 1
else
return 1+ sum_of_integer(n-1)
CB

6. Give a recursive algorithm for finding the maximum of the finite set of integer, making use of the fact that the maximum of n integer is the larger of the last integer in the list and the maximum of the first n-1 integer in the list.

procedure largest(a1,a2,.....,an: integer)
if n=1
then largest (a1,a2,.....,an: integer) : = a1
else largest(a1,a2,.....,an: integer) : = max(largest(a1,a2,.....,an-1),an)

Thanks

7. Originally Posted by bhuvan
Give a recursive algorithm for finding the maximum of the finite set of integer, making use of the fact that the maximum of n integer is the larger of the last integer in the list and the maximum of the first n-1 integer in the list.

procedure largest(a1,a2,.....,an: integer)
if n==1
then largest (a1,a2,.....,an: integer) : = a1
else largest(a1,a2,.....,an: integer) : = max(largest(a1,a2,.....,an-1),an)

Thanks
I think your pseudo-code use is not acceptable, something more like:

Code:
procedure largest(n:unsigned, a[1:n]: integer)
if n=1
then
return  a[1]
else
return  max(largest(n-1, a[1:n-1]),a[n])
would be better.

Alternativly can you give a link to a site that specified the syntax for your pseudo-code.

CB