Je verhaal geeft me wel een boost hoor! Diverse mensen waarin ik het heb voorgelegd hebben me ook verteld dat je in het begin niet alles kunt weten, maar precies de manier waarop jij het brengt geeft me een helder moment! Tnx
Goed, allereerst had ik niet uit mezelf bij dit antwoord gekomen. Nu ga ik het proberen uit te leggen hoe ik denk dat de formule werkt:
blocks = aantal blokken
height = hoogte van pyramide
inlayer = het blokje wat er elke keer bij komt om aan een nieuwe rij te beginnen.
while inlayer <= blocks: Terwijl inlayer lager is of gelijk aan het aantal blokken, herhaalt de loop zich.
height += 1 Zodra de loop doorgaat, wordt er +1 aan de hoogte gegeven.
blocks -= inlayer Hier gaat bij het totaal aantal blokken, de inlayer waarde af. In het begin is dat 1.
inlayer += 1 Dit zorgt ervoor dat er een waarde bij de inlayer komt, omdat er steeds meer blokken nodig zijn bij iedere laag.
Ik ga als voorbeeld voor deze formule een input geven van 7 blokken en ik ga schetsen wat er volgens de formule gebeurt met de waarde "7".
While inlayer <= blocks: Gaat eerst bekijken of er überhaupt blokken zijn om mee te bouwen.
Ja die zijn er, dat zijn er 7.
Dat betekend dat er 1 blok aan de hoogte wordt toegevoegd: +1 hoogte
Vervolgens wordt het inlayer aantal van 1 ( bij start ) van de blokken afgehaald, dus 6 blokken nog: 6 blokken
Nu komt er de waarde 1 bij inlayer wat inlayer doet uitkomen op 2. 2 inlayer
Op dit moment is de hoogte van de pyramide 1.
De loopt gaat zich herhalen omdat er nog voldoende inlayer blokken zijn tov blocks.
Volgende waarde vanaf herharling loop na 1e keer:
height: 2 - 3
blocks: 4 - 1
inlayer: 3 - 4
Op dit moment is de inlayer waarde hoger dan het aantal blokken, dus stopt de loop.
Nu begrijp ik in ieder geval hoe de waardes door de loop heengaan, maar nogmaals had ik hier zelf niet opgekomen.
Klik om te vergroten...