2016-07-25 10 views
2

Wie füge ich for-Schleife n mal hinzu?Wie wird eine variable Anzahl von verschachtelten For-Schleifen entworfen?

Zum Beispiel, wenn n = 3 dann für Looping 3 mal wie unten:

for() 
{ 
    for() 
    { 
    for() 
    { 
     //keep adding for-loops depending on n 
    } 
    } 
} 

ich spekulieren, dass Rekursion funktionieren könnte. Irgendwelche Ideen?

+1

Warum brauchen Sie 'n' für Schleifen? Kannst du nicht einfach 'for (i = 0; i kaylum

+0

Wenn ich 3 verschachtelte 'for'-Loops sehe, fange ich an, mir Sorgen zu machen, sie dynamisch hinzuzufügen, ist einfach eine verrückte Sache. Sie können darüber nachdenken und wie leicht das teuer werden kann. Denken Sie, dass, wenn jede Schleife 10 Mal läuft, mit 3 Sie 1000 erhalten, und wenn Sie 1 hinzufügen, wird es 10000. Es gräbt exponentiell natürlich, so dass dies einfach verrückt ist. Und ich bin mir absolut sicher, dass, was immer du auch machen willst, du das nicht brauchst, also ist das ein klassisches [XY-Problem] (http://xyproblem.info) –

+1

BTW, die ganze Idee ist nicht * anständig * . Und du solltest vielleicht erklären, was das ** echte ** Problem ist, vielleicht kann dir jemand helfen. –

Antwort

3
void recursiveForLoops(int n, int limit) 
{ 
    int i; 
    if(n == 0) 
    { 
     //do something 
     return; 
    } 
    for(i = 0; i < limit; ++i) 
    { 
     recursiveForLoops(n - 1, limit);  
    } 
} 

Dies wird n verschachtelte Schleifen for, jedes mal iteriert limit erzeugen. Sie könnten dieselbe Ausgabe unter Verwendung einer normalen, einzelnen for Schleife mit einer Schleife erreichen, wobei klimit^n (limit zu der n 'ten Macht) ist.

+1

Vielleicht beantwortet dies die Frage, aber Sie sollten es nie tun. –

+0

@Polikdir können Sie die Ternärnummer zählen? nicht rekursiv? –

+0

@JeungwooPark Was meinst du? – Xiobiq