Omkodning af 729 rekursive kald til non-rekursivt

Tags:    java

Jeg har i mit program et 9x9x9 3D-array af ints, altså 729 ints.

Jeg starter ved (x,y,z)=(0,0,0) og skal hver gang lægge 1 til det int i mit array med de pågældende koordinater, og dernæst lægge 1 til x. Sådan skal jeg fortsætte, selvfølgelig tagende højde for at lægge 1 til y og dernæst z, når hhv. x og y er lig med 9, indtil (x,y,z)=(8,8,8), hvorefter jeg skal udføre en anden funktion.

Jeg har snildt kunne lave det med rekursive kald, men 729 rekursive kald er for meget for Java, som giver mig et StackOverflowError. Derfor er jeg nødt til at omprogrammere det på en non-rekursiv måde, men jeg kan ikke se hvordan det skal gøres.

Det skal lige siges, at jeg ikke kan lave Strings ud af mine ints, da jeg kun bruger ints foreløbig, og senere kommer til at skulle bruge objekter af klasser jeg selv har lavet.



2 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Jo, jeg er dog ikke inde i java.
c++:
Fold kodeboks ind/udKode 

Nu er jeg jo ikke helt sikker på hvad det egentlig er du vil. Kunne ikke lige tyde det af din post, men måske er det bare mig der er træt. Ihvert fald er dette måden at tildele hver post i dit array en unik værdi, hvis det altså er det du vil.
coord[0][0][0] kommer så til at indeholde værdien 0 og coord[8][8][8] kommer til at indeholde værdien 728, eller 9^3 - 1.



Indlæg senest redigeret d. 25.03.2008 06:21 af Bruger #4414
Er det ikke blot 3 for-løkker inden i hinanden?



t