# Recursive algorithm

• Nov 10th 2008, 09:15 AM
bhuvan
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)

• Nov 10th 2008, 10:07 AM
clic-clac
Quote:

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
• Nov 10th 2008, 12:00 PM
CaptainBlack
Quote:

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
• Nov 10th 2008, 12:13 PM
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
• Nov 10th 2008, 12:27 PM
CaptainBlack
Quote:

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
• Nov 10th 2008, 04:31 PM
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
• Nov 10th 2008, 11:44 PM
CaptainBlack
Quote:

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)

```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])```