how to make logic of recursion function?
* ** *** ****
what do you mean? How does recursion work?
yes
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 }
for recursion you would do public void a() int a = 0 while(a < 10) { a++ a(); }
which would call a again and again until you reached 9.
public void a() { int a = 0 while(a < 10) { a++ a(); } }
forgot my brackets BAD KZ :P
* ** *** **** print this using recurssion
you do know how to work strings right?
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.
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); }
I personally would use an array, set each element to the # of * and then loop through the array.
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.
Like I said public void a() { //do something a(); }
whats the mistake?
you're calling 2 methods, you need to call 1 method that calls itself.
i need to handle spaces as well as asteric
decrement in spaces and increment in asteric
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.
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.
plus you can read this link...seems a good one:) http://www.doc.ic.ac.uk/~wjk/C++Intro/RobMillerL8.html
^exactly what I was saying :p.
Join our real-time social learning platform and learn together with your friends!