Ask your own question, for FREE!
Computer Science 20 Online
OpenStudy (anonymous):

how to make logic of recursion function?

OpenStudy (anonymous):

* ** *** ****

OpenStudy (konradzuse):

what do you mean? How does recursion work?

OpenStudy (anonymous):

yes

OpenStudy (konradzuse):

Okay so basically there is iteration and recursion. Recursion is basically calling a method or function within itself to get an answer. For example normally you would do an iteration like afor loop. for(int i = 0; i < size; i++) { //do something }

OpenStudy (konradzuse):

for recursion you would do public void a() int a = 0 while(a < 10) { a++ a(); }

OpenStudy (konradzuse):

which would call a again and again until you reached 9.

OpenStudy (konradzuse):

public void a() { int a = 0 while(a < 10) { a++ a(); } }

OpenStudy (konradzuse):

forgot my brackets BAD KZ :P

OpenStudy (anonymous):

* ** *** **** print this using recurssion

OpenStudy (konradzuse):

you do know how to work strings right?

OpenStudy (konradzuse):

We aren't supposed to give out answers on here directly, but I am here to help if you need some guidance. I explained how recursion works, so let me know what you come up with :). There are many ways to complete this.

OpenStudy (anonymous):

void main() { int a; cin>>a; spaces(a); } void spaces(int a) { cout<<" "; if(a<1) spaces(a-1); asteric(a); } void asteric(int a) { cout<<"*"; if(a>1) asteric(a-1); cout<<endl; spaces(a); }

OpenStudy (konradzuse):

I personally would use an array, set each element to the # of * and then loop through the array.

OpenStudy (konradzuse):

woahs... You only need 1 method to do recursion. You're basically calling another 1 method from another, and then that method to the first one.

OpenStudy (konradzuse):

Like I said public void a() { //do something a(); }

OpenStudy (anonymous):

whats the mistake?

OpenStudy (konradzuse):

you're calling 2 methods, you need to call 1 method that calls itself.

OpenStudy (anonymous):

i need to handle spaces as well as asteric

OpenStudy (anonymous):

decrement in spaces and increment in asteric

OpenStudy (konradzuse):

oic okay, so basically you will take the number total lets say 10. The 10th one would be the *, then on the next line 9 and 10 will be **, etc. Again you use only 1 method.

OpenStudy (rsmith6559):

Recursion is usually used either for traversal or when a problem can be broken into smaller, identical problems and their solution can be combined into the final answer. In the case of traversals, this would be searching through a tree structure or graph or something similar. In the case of sub-problems, as you're proceeding through the sub-problems, you're basically breaking down the larger problem. Once you reach the "base case" ( where you want to stop recursing ), you start to "unwind" the recursion ( proceeding back up ) which would be the combining of the sub-problems into the answer to the original, large problem. Generally, the first block of a recursive function is the test for the base case. I'm not 100% sure of how you want to do your question, but if I'm given the length of the space/asterick string, I could decrement that length on the way down and keeping an original of the length (passing two variables), my base case being when that variable is 0. And on the unwind concatenate spaces up to original length minus this stack frame's length, padding it out with astericks and printing it. Or putting a linefeed on it and adding it to a (all of the strings) string and returning that up.

OpenStudy (microbot):

plus you can read this link...seems a good one:) http://www.doc.ic.ac.uk/~wjk/C++Intro/RobMillerL8.html

OpenStudy (konradzuse):

^exactly what I was saying :p.

Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!
Can't find your answer? Make a FREE account and ask your own questions, OR help others and earn volunteer hours!

Join our real-time social learning platform and learn together with your friends!