By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
454,497 Members | 1,921 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 454,497 IT Pros & Developers. It's quick & easy.

Recursion (slightly off-topic)

P: n/a
I'm trying to convert this:

for(int i=0; i<5; ++i)
for(int j=0; j<5; ++j)
for(int k=0; k<5; ++k)
cout << i+1 << j+1 << k+1 << endl;

Into a recusive function. But I ended with:

#include <iostream>
using namespace std;

void permute(int);
int A[3];

int main(){

permute(0);

return 0;
}

void permute(int n){

for(int i=0; i<5; ++i){

A[n]=i+1;

if(n<3){
permute(n+1);
} else {
for(int j=0; j<3; ++j)
cout << A[j];
cout << endl;
}
}
}

Which doesn't work! I'm lost here, could anyone give me a clue?

Nov 22 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
> if(n<3){

Probably:

if (n+1 < 3) {
Nov 22 '05 #2

P: n/a

You are very close! (but it's late and being the Saturday of a very long
week, there is drinking involved)

Shouldn't that be if(n<2)? If n==2 you will call permute(3) which will
cause A[3] = I+1; and there ain't no A[3]

On 11/19/05 8:37 PM, in article
11*********************@g49g2000cwa.googlegroups.c om, "Gaijinco"
<ga******@gmail.com> wrote:

void permute(int n) {
for(int i=0; i<5; ++i) {
A[n]=i+1;

if(n<3) ////////////////////// if (n<2) here { permute(n+1);
} else
{ for(int j=0; j<3; ++j) { cout << A[j]; } cout << endl;
}
}

}

Nov 22 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.