Dear Cprogramming.com administrators and members,


Hello everyone, a pleasant day to you all. I hope that everyone's doing great upon reading this forum. Well, I'm sort of experimenting with recursive functions and I feel great when I learned how to program them especially when using it on factorials, fibonacci sequence, etc. I have this sample program, here's the simple code:

Code:
#include <iostream>
class Counting {
    public:
        int count (int x, int y) { //this is a countdown
            int ctr=0;
            if (x==y)
                return 1;
            else {
                ctr = y+count (x-1,y);
                return ctr;            
           }

        }//end of count()

};



int main()
{
	int in, ctr, choice;
	Counting countmain;
	std::cout << "Please select from the menu: " << std::endl << std::endl;
	std::cout << "[1] count up " << std::endl;
	std::cout << "[2] count down " << std::endl;
	std::cout << "\nPlease enter your choice: ";
	std::cin>> choice;

	if (choice==1){
	    std::cout<<" count from 1 up to ";
	    std::cin>> in;
	    for(ctr=1; ctr<=in; ctr++)
                          std::cout << countmain.count(in,1) << std::endl;
	}
	return 0;
}

Well, this program will allow user to choose whether he/she wants to count up or count down so to speak. If the user choose 1, then the program will count from 1 up to n, where n is the number he/she input. For example I choose 1 then enter 10, so that means the program will count from 1 to 10, but unfortunately, the recursive function printed number 10, but ten times, not 1, 2, 3,...10 as I want. I just want to ask everyone's help on what changes should I made to my code make the member function count() to count down numbers. I know this can be relatively easy using loops, but somehow I'm just trying it on recursive functions. I hope someone could help me on this one.


Thank you in advance and God bless everyone.




Respectfully yours,


MarkSquall