Last active
September 30, 2017 17:48
-
-
Save mirsahib/f448d0c4b474f3c73bd812d7a70b56b8 to your computer and use it in GitHub Desktop.
IUB CSE 203 Data Structure Assignment
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Author: Mir Sahib | |
ID:1510175 | |
Updated: 30 Sep 17 | |
*/ | |
#include <iostream> | |
using namespace std; | |
//pattern 1 a) | |
void printNum(int n){ | |
if(n==1){ | |
cout<<n<<" "; | |
}else{ | |
printNum(n-1); | |
cout<<n<<" "; | |
} | |
} | |
void printPatterNo_1a(int i){ | |
if(i==1){ | |
printNum(i); | |
cout<<endl; | |
}else{ | |
printPatterNo_1a(i-1); | |
printNum(i); | |
cout<<endl; | |
} | |
} | |
// b) | |
void printChar(char n,char k){ | |
if(n=='A'){ | |
cout<<k<<" "; | |
}else{ | |
printChar(n-1,k); | |
cout<<k; | |
} | |
} | |
void printPatterNo_1b(char i){ | |
if(i=='A'){ | |
printChar(i,i); | |
cout<<endl; | |
}else{ | |
printPatterNo_1b(i-1); | |
printChar(i,i); | |
cout<<endl; | |
} | |
} | |
//pattern 1 end | |
//pattern 2 start | |
void printPatterNo_2(int n){ | |
if(n==1){ | |
printNum(n); | |
cout<<endl; | |
}else{ | |
printNum(n); | |
cout<<endl; | |
printPatterNo_2(n-1); | |
} | |
}; | |
//pattern 2 end | |
//pattern 3 start | |
void printSpace(int n){ | |
if(n==1){ | |
cout<<""; | |
}else{ | |
cout<<" "; | |
printSpace(n-1); | |
} | |
}; | |
void printStar(int n){ | |
if(n==1){ | |
cout<<"*"; | |
}else{ | |
cout<<"*"; | |
printStar(n-1); | |
} | |
}; | |
void printPatterNo_3(int n,int i){ | |
//i is a independent parameter | |
if(n==1){ | |
printSpace(n); | |
printStar((i*2)+1); | |
cout<<endl; | |
}else{ | |
printSpace(n); | |
printStar((i*2)+1); | |
cout<<endl; | |
printPatterNo_3(n-1,i+1); | |
} | |
} | |
//pattern 3 end | |
//pattern 4 start | |
int printDigit_4a(int n,int i){ | |
if(n==1){ | |
cout<<i<<""; | |
return i; | |
}else{ | |
cout<<i<<""; | |
printDigit_4a(n-1,i+1); | |
} | |
//there is a warning because when the stack is unwrapped it it returning a non void function | |
} | |
void printDigit_4b(int n,int i){ | |
if(n==i){ | |
cout<<i; | |
}else{ | |
cout<<i<<""; | |
printDigit_4b(n,i-1); | |
} | |
} | |
void printPatterNo_4(int n,int i,int c){ | |
if(n==1){ | |
printSpace(n); | |
c = printDigit_4a(i,i); | |
printDigit_4b(i,c-1); | |
cout<<endl; | |
}else{ | |
printSpace(n); | |
c = printDigit_4a(i,i); | |
if(i!=1){ | |
printDigit_4b(i,c-1); | |
} | |
cout<<endl; | |
printPatterNo_4(n-1,i+1,c); | |
} | |
} | |
//pattern 4 end | |
//pattern 5 start | |
void printPatterNo_5(int i,int n){ | |
//i is a independent parameter | |
if(n==1){ | |
printSpace(i); | |
printStar((n*2)-1); | |
cout<<endl; | |
}else{ | |
printSpace(i); | |
printStar((n*2)-1); | |
cout<<endl; | |
printPatterNo_5(i+1,n-1); | |
} | |
} | |
//pattern 5 end | |
//pattern 7 start | |
int printDigit(int n,int i){ | |
if(n==1){ | |
cout<<i<<" "; | |
return i+1; | |
}else{ | |
cout<<i<<" "; | |
printDigit(n-1,i+1); | |
} | |
//there is a warning because when the stack is unwrapped it it returning a non void function | |
} | |
void printPatterNo_7(int n,int c,int i){ | |
if(n==1){ | |
i= printDigit(c,i); | |
cout<<endl; | |
}else{ | |
i = printDigit(c,i); | |
cout<<endl; | |
printPatterNo_7(n-1,c+1,i); | |
} | |
} | |
//pattern 7 end | |
//problem 8 start | |
int generateFactorial(int n){ | |
if(n==1){ | |
cout<<n<<" : "; | |
return n; | |
}else{ | |
cout<<n<<" "; | |
return n*generateFactorial(n-1); | |
} | |
} | |
//problem 8 end | |
//problem 9 start | |
int generateFib(int n){ | |
if(n==0){ | |
return 0; | |
}else if(n==1){ | |
return 1; | |
}else{ | |
return generateFib(n-1)+generateFib(n-2); | |
} | |
} | |
void reverseString(string s,int len){ | |
if(len==0){ | |
cout<<s[len]; | |
}else{ | |
cout<<s[len]; | |
reverseString(s,len-1); | |
} | |
} | |
int main() | |
{ | |
// change 5 and 4 for different pattern but don't change any other parameter | |
//don't enter 0 as parameter for any pattern | |
int n; | |
cout<<"Pattern 1 a) and b)"<<endl<<endl; | |
printPatterNo_1a(5); | |
cout<<endl; | |
printPatterNo_1b('E'); | |
cout<<endl; | |
cout<<"Pattern 2:"<<endl<<endl; | |
printPatterNo_2(5); | |
cout<<endl; | |
cout<<"Pattern 3:"<<endl<<endl; | |
printPatterNo_3(5,0); | |
cout<<endl; | |
cout<<"Pattern 4:"<<endl<<endl; | |
printPatterNo_4(5,1,1); | |
cout<<endl; | |
cout<<"Pattern 5:"<<endl<<endl; | |
printPatterNo_5(1,5); | |
cout<<endl; | |
cout<<"Pattern 7:"<<endl<<endl; | |
printPatterNo_7(4,1,1); | |
cout<<endl; | |
//generate factorial | |
cout<<"Enter a number"<<endl; | |
cin>>n; | |
cout<<"Factorial of "<<n<<" is "<<endl; | |
cout<<generateFactorial(n); | |
//generate fibonacci | |
cout<<endl; | |
cout<<"fibonacci of "<<n<<" series is"<<endl; | |
cout<<generateFib(n); | |
cout<<endl; | |
string s = "CSE203_DataStructure"; | |
int len = s.length(); | |
cout<<"Reverse of "<<s<<" is: "; | |
reverseString(s,len-1); | |
return 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment