De tegelvloer in de lobby is bedoeld als een levende kunsttentoonstelling. Elke dag worden de tegels omgedraaid volgens deze regels:
Met tegels direct ernaast bedoelen we hierbij de zes tegels die rechtstreeks aan de tegel in kwestie grenzen.
Deze regels worden gelijktijdig op elke tegel toegepast. Anders gezegd, er wordt eerst bepaald welke tegels er moeten omgedraaid worden, en daarna worden ze allemaal tegelijk omgedraaid.
Voor het vorige voorbeeld zijn dit het aantal tegels die met hun zwarte kant naar boven liggen nadat een aantal dagen zijn verstreken:
Dag 1: 15 Dag 2: 12 Dag 3: 25 Dag 4: 14 Dag 5: 23 Dag 6: 28 Dag 7: 41 Dag 8: 37 Dag 9: 49 Dag 10: 37 Dag 20: 132 Dag 30: 259 Dag 40: 406 Dag 50: 566 Dag 60: 788 Dag 70: 1106 Dag 80: 1373 Dag 90: 1844 Dag 100: 2208
Nadat deze procedure in totaal 100 keer uitgevoerd is, zouden er dus 2208
tegels met hun zwarte kant naar boven liggen.
Hoeveel zwarte tegels zijn er na
blackTiles
waaraan twee argumenten moeten doorgegeven worden: i) de padnaam (String
) van een tekstbestand met de lijst van tegels die op de eerste dag moeten omgedraaid worden en ii) een getal int
) zwarte tegels er zijn na Deze statische functie moet zich in de klasse Submission
bevinden.
In deze interactieve sessie gaan we ervan uit dat het tekstbestand tiles.txt
1 zich in de huidige directory bevindt.
> Submission.blackTiles("tiles.txt", 0)
10
> Submission.blackTiles("tiles.txt", 1)
15
> Submission.blackTiles("tiles.txt", 2)
12
> Submission.blackTiles("tiles.txt", 3)
25
> Submission.blackTiles("tiles.txt", 4)
14
> Submission.blackTiles("tiles.txt", 5)
23
> Submission.blackTiles("tiles.txt", 6)
28
> Submission.blackTiles("tiles.txt", 7)
41
> Submission.blackTiles("tiles.txt", 8)
37
> Submission.blackTiles("tiles.txt", 9)
49
> Submission.blackTiles("tiles.txt", 10)
37
> Submission.blackTiles("tiles.txt", 20)
132
> Submission.blackTiles("tiles.txt", 30)
259
> Submission.blackTiles("tiles.txt", 40)
406
> Submission.blackTiles("tiles.txt", 50)
566
> Submission.blackTiles("tiles.txt", 60)
788
> Submission.blackTiles("tiles.txt", 70)
1106
> Submission.blackTiles("tiles.txt", 80)
1373
> Submission.blackTiles("tiles.txt", 90)
1844
> Submission.blackTiles("tiles.txt", 100)
2208
Marcel B (@mrclbschff2) animeerde zijn oplossing voor deze opgave.