dreamskyTT
dreamskyTT

Reputation: 1

recursive function to sum of first odd numbers python

I'm trying to convert below code to recursive function but seems i'm quite confusing how could i write below in recursive function. could help me to give some thoughts?

Basically, what I'm generating below is the sum of the first n odd numbers.

def sum_odd_n(n):
    total=0
    j=2*n-1
    i=1
    if i>j:
        return 1
    else: 
        total =((j+1)/2)**2
    i+=2
    return total


> >>> sum_odd_n(5)
> 25.0
> >>> sum_odd_n(4)
> 16.0
> >>> sum_odd_n(1)
> 1.0

Upvotes: 0

Views: 9118

Answers (4)

sahil godwal
sahil godwal

Reputation: 11

Try:

def sum_of_odd(n):
if n>0:
    x=(n*2)-1
    return x+sum_of_odd(n-1)
else:
    return 0

The answer of this:

sum_of_odd(5)

will be:

25

Upvotes: 1

גלעד ברקן
גלעד ברקן

Reputation: 23955

Recursive functions have at least one base case and at least one recursive call. Here are some hints:

def f(n):
  # Base case - for which
  # n do we already know the answer
  # and can return it without
  # more function calls? (Clearly,
  # this must also terminate any
  # recursive sequence.)

  if n == ???:
    return ???

  # Otherwise, lets say we know the answer
  # to f(n - 1) and assign it to
  # the variable, 'rest'

  rest = f(n - 1)

  # What do we need to do with 'rest'
  # to return the complete result

  return rest + ???

Fill out the question marks and you'll have the answer.

Upvotes: 1

Shivam Shah
Shivam Shah

Reputation: 121

Try :

def sum_odd_n(n):
    if n>0:
        if n==1:
            return 1
        else:
            return 2*n-1 + sum_odd_n(n-1)

Upvotes: 0

James Davis
James Davis

Reputation: 978

This smells somewhat like homework so I'm going to offer some advice instead of a solution.

Recursion is about expressing a problem in terms of itself.

Suppose you know the sum of the odd numbers from N to N - 2. Can you write the total sum in terms of this sum and the function itself (or a related helper function)?

Upvotes: 1

Related Questions