Answer
1. Recursive -
def Salary(day):
print("Salary for day", day, "is", 2**(day-1))
if day<30:
Salary(day+1)
2. Iterative:
def Salary(day):
s=1
while(day<=30):
print("Salary for day", day, "is", s )
s=s*2
Work Step by Step
The recursive solution works by calculating and printing the salary for the current day calling the function again to print the salary on next day until 30 day.
def Salary(day):
print("Salary for day", day, "is", 2**(day-1))
if day<30:
Salary(day+1)
The iterative version multiplies previous day salary by 2 for every day until 30 days.
def Salary(day):
s=1
while(day<=30):
print("Salary for day", day, "is", s )
s=s*2