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