Mert Salık Kişisel Web Sayfası
Bir bilgisayar mühendisi adayının maceraları…
Hoşgeldiniz!
Sample Recursion Problems
Here are some sample recursion problems written by Phillip T. Conrad
(Assistant Professor, Dept. of Computer and Information Sciences, University of Delaware).
PROBLEMS
And here i try to solve them. I recommend that check the codes, if you find any error or different easy solution, you can command it or contact me (=
I’m very sorry that legibility of my code is very bad, because wordpress plugin, which i’m using, doesn’t show the tabs.
Solution 1
#include <iostream>
#include <cstdlib>
using namespace std;
int sumOfDigits(int num);
int main () {
int number,sum;
cout<<"Please enter your number."<<endl<<"....:";
cin>>number;
if(number<0){number=number*(-1);}
sum=sumOfDigits(number);
system("cls");//clear for Linux and Unix OS
cout<<endl<<"Sum of digits is "<<sum<<" ."<<endl<<endl;
system("PAUSE");
return 0;
}
int sumOfDigits(int num){
if(num<10 && num>=1){
return num;
}
else{
return sumOfDigits((num-num%10)/10) + num%10;
}
}Solution 2
#include <iostream>
#include <cstdlib>
#define LEN 5
using namespace std;
void array_printer(int a[], int size);
int main (){
int numbers[LEN];
cout<<"Please, enter your integer array, than i'll write it recursively."
<<endl;
for(int i=0; i<LEN;i++){
cout<<".....:";
cin>>numbers[i];
}
array_printer(numbers, LEN-1);
system("PAUSE");
return 0;
}
void array_printer(int a[], int size){
if(size>=0){
cout<<endl<<"item: "<<a[size];
array_printer(a,(size-1));
cout<<endl;
}
else return;
}Solution 3
#include <iostream>
#include <cstdlib>
#define LEN 5
using namespace std;
void array_printer(int a[], int size);
int main (){
int numbers[LEN];
cout<<"Please, enter your integer array, than i'll write it recursively."
<<endl;
for(int i=0; i<LEN;i++){
cout<<".....:";
cin>>numbers[i];
}
array_printer(numbers, LEN-1);
system("PAUSE");
return 0;
}
void array_printer(int a[], int size){
if(size>=0){
array_printer(a,(size-1));
cout<<"item: "<<a[size]<<endl;
}
else return;
}Solution 4
#include <iostream>
#include <cstdlib>
using namespace std;
int sumOfNumbers(int num);
int main(){
int number,sum;
cout<<"Please, Enter the number which"<<endl
<<"will be last value of sum."<<endl
<<".....:";
cin>>number;
sum=sumOfNumbers(number);
cout<<endl<<endl<<"Sum of numbers is "<<sum<<" ."<<endl;
system("PAUSE");
return 0;
}
int sumOfNumbers(int num){
if(num!=1){
return (sumOfNumbers(num-1) + num);
}
else{
return 1;
}
}Solution 5
#include <iostream>
#include <cstdlib>
using namespace std;
int productOfNumbers(int num);
int main(){
int number,product;
cout<<"Please, Enter the number which"<<endl
<<"will be last value of product, below 17."<<endl
<<".....:";
cin>>number;
product = productOfNumbers(number);
cout<<endl<<"Product of numbers is "<<product<<" ."<<endl;
system("PAUSE");
return 0;
}
int productOfNumbers(int num){
if(num!=1){
return (productOfNumbers(num-1) * num);
}
else{
return 1;
}
}Solution 6
#include <iostream>
#include <cstdlib>
#define LEN 5
using namespace std;
int zeroCounter(int num[], int size);
int main(){
int numbers[LEN],zeros;
cout<<"Please, enter your integer array, than i'll count zeros in array"
<<endl<<"using the recursion"<<endl;
for(int i=0; i<LEN;i++){
cout<<".....:";
cin>>numbers[i];
}
zeros = zeroCounter(numbers, LEN);
cout<<endl<<endl<<"Number of zeros in this array is "<<zeros<<" ."<<endl;
system("PAUSE");
return 0;
}
int zeroCounter(int num[], int size){
if(size>=0){
if(num[size]==0) return 1 + zeroCounter(num,size-1);
else return zeroCounter(num,size-1);
}
else return 0;
}Solution 7
#include <iostream>
#include <cstdlib>
#define LEN 5
using namespace std;
int minElement(int num[], int size);
int main(){
int numbers[LEN],minimum;
cout<<"Please, enter your integer array, than i'll find minimum element"
<<endl<<" in array by using the recursion"<<endl;
for(int i=0; i<LEN;i++){
cout<<".....:";
cin>>numbers[i];
}
minimum = minElement(numbers,LEN);
cout<<endl<<endl<<"Minimum element of this array is "<<minimum<<" ."<<endl;
system("PAUSE");
return 0;
}
int minElement(int num[], int size){
if(size>=0){
if(num[size]<=num[size-1]){
num[size-1]=num[size];
return minElement(num,size-1);
}
else return minElement(num,size-1);
}
else return num[0];
}Bu yazı toplamda 162, bugün ise 0 kez görüntülenmiş
Leave a Reply
Sitemi takip ettiğiniz için teşekkür ederim. İyi çalışmalar.



