Recursion Python Lab 29/08/23
Tue Aug 29 2023 06:06:59 GMT+0000 (Coordinated Universal Time)
Saved by @Astik
def fact(n):
if(n<0):
print("Wrong input")
elif(n==0):
return 1
else:
return n*fact(n-1)
def fibona(n):
if(n<=2):
return 1
else:
return fibona(n-1)+fibona(n-2)
######TOWER OF HANOI
######GCD of Two given number
def gcd(a,b):
if(a==0 or b==0):
print("Invalid numbers.")
return
elif(a%b==0):
return b
elif(b%a==0):
return a
else:
if(a>b):
return gcd(b,a-b)
else:
return gcd(a,b-a)
def sumdigi(n):
if(n<0):
print("Wrong input")
elif(n==0):
return 0
else:
rem=n%10
return rem+sumdigi(n//10)
#####Reverse of a number
def reversenum(n,rev):
if(n==0):
return rev
else:
rem=n%10
rev=rev*10+rem
return reversenum(n//10,rev)
#decimal to binary
def DecToBin(n):
if(n<0):
print("Wrong Input")
elif(n==0):
return 0
else:
return n%2+10*DecToBin(n//2)
#decimal to octa
def DecToOc(n):
if(n<0):
print("Wrong input.")
elif(n==0):
return 0
else:
return n%8 + 10*DecToOc(n//8)
#decimal to hexa
def DecToHex(n):
if(n<0):
print("Wrong input.")
elif(n==0):
return ''
else:
rem=n%16
if rem==10:
res='A'
elif rem==11:
res='B'
elif rem==12:
res='C'
elif rem==13:
res='D'
elif rem==14:
res='E'
elif rem==15:
res='F'
else:
res=str(rem)
return DecToHex(n//16)+res
#binary to decimal
def BinToDec(n):
if(n<0):
print("Wrong input.")
elif(n==0):
return 0
else:
return (n%10) + 2*BinToDec(n//10)
#binary to hexa
def BinToDec(n):
if(n<0):
print("Wrong input.")
elif(n==0):
return 0
else:
return (n%10) + 2*BinToDec(n//10)
def DecToHex(n):
if(n<0):
print("Wrong input.")
elif(n==0):
return ''
else:
rem=n%16
if rem==10:
res='A'
elif rem==11:
res='B'
elif rem==12:
res='C'
elif rem==13:
res='D'
elif rem==14:
res='E'
elif rem==15:
res='F'
else:
res=str(rem)
return DecToHex(n//16)+res
def sumNat(n):
if(n<1):
print("Not a natural number.")
elif(n==1):
return 1
else:
return n+sumNat(n-1)
print("1.Facorial\n2.Fibonaaci\n3.Sum of Digit\n4.Reverse Number\n5.Decimal to Binary\n6.Decimal to octa\n7.Decimal to Hexa\n8.Binary to decimal\n9.Binary to Hexa\n10.Sum of natural number\n11. GCD\n press 0 for Exit")
ch=20
while(ch!=0):
ch=int(input("Enter your choice: "))
if(ch==1):
n=int(input("Enter number: "))
print(fact(n))
elif(ch==2):
n=int(input("Enter digit: "))
print(fibona(n))
elif(ch==3):
n=int(input("Enter number: "))
print(sumdigi(n))
elif(ch==4):
n=int(input("Enter number: "))
print(reversenum(n,0))
elif(ch==5):
n=int(input("Enter number: "))
print("Binary is: ",DecToBin(n))
elif(ch==6):
n=int(input("Enter number: "))
print("Octal is: ",DecToOc(n))
elif(ch==7):
n=int(input("Enter number: "))
print("HexaDecimal is: ",DecToHex(n))
elif(ch==8):
n=int(input("Enter binary number: "))
print("decimal is: ",BinToDec(n))
elif(ch==9):
n=int(input("Enter binary number: "))
n1=BinToDec(n)
print("HexaDecimal is: ",DecToHex(n1))
elif(ch==10):
n=int(input("Enter count: "))
print("Sum of natural number is: ",sumNat(n))
elif(ch==11):
num1=int(input("Enter number 1: "))
num1=int(input("Enter number 2: "))
print("GCD: ",gcd(num1,num2))
else:
print("Invalid Choice,,, ")
jy



Comments