69.2k views
2 votes
Write a recursive function sumSquares(num) that given an integer num, returns the sum of squares of numbers from 1 to num. For example: sumSquares(3) should return 1^2 2^2 3^2

1 Answer

3 votes

Answer:

Here is the recursive function sumSquares(num) that takes an integer num as parameter and returns the sum of squares of numbers from 1 to num.

def sumSquares(num):

if(num >= 0): # checks if the value of num is less than or equal to 0

if (num==0): #if value of num is 0

return 0 #returns 0 if value of num is 0

else: #if value of num is greater than 0

return sumSquares(num - 1)+ num * num #recursively calls the sumSquares method to return the sum of squares of numbers from 1 to num

else: # if a user enters a negative num

(print("The number if not positive")) #prints this message

exit() # exits after displaying that number if not positive message

#below print statement is used in order to check the working of the function

print(sumSquares(3)) #calls function and passes value 3 for num

Step-by-step explanation:

The program works as follows:

The function sumSquares(num) that takes an integer num as parameter and returns the sum of squares of numbers from 1 to num

The first if condition checks if value of num is positive. If this condition evaluates to true then the another if statement inside this if statement is executed which checks if the value of num is 0. If this condition evaluates to true then the program returns 0. However if this condition evaluates to false then the else part executes which has the following statement:

return sumSquares(num - 1) + num * num

For example num = 3

so the above recursive statement works as follows:

sumSquares(3-1) + 3 * 3

sumSquares(2) + 9

Note that the sumSquares() method is called again and the value 2 is passed as num. As 2 is greater than 0. So again the recursive statement executes:

sumSquares(2 - 1) + 2 * 2 + 9

sumSquares(1) + 4 + 9

sumSquares(1) + 13

sumSquare() method is called again and the value 1 is passed as num. As 1 is greater than 0. So again the recursive statement executes:

sumSquares(1 - 1) + 1 * 1 + 13

sumSquares(0) + 1 + 13

sumSquares(0) + 14

sumSquare() method is called again and the value 0 is passed as num

As the value of num=0 So the if (num == 0): condition evaluates to true and the statement returns 0 executes which returns 0:

sumSquares(0) + 14

0 + 14

Hence the output is:

14

The screenshot of the program along with its output is attached.

Write a recursive function sumSquares(num) that given an integer num, returns the-example-1
User Mathieu CAROFF
by
4.6k points