Een man besluit een kilometer van A naar B te lopen.
Bovenstaande denkoefening is een toepassing van onderstaande wiskundige reeks: \[\frac{1}{2}+\frac{1}{4}+\frac{1}{8}+\frac{1}{16}+\cdots = \sum_{n=1}^\infty \left({\frac 12}\right)^n = 1. \]
Hoe veel termen je ook bij elkaar optelt, de som nadert 1 zonder 1 te worden.
Jouw programma vraagt aan de gebruiker een willekeurig getal tussen 0 en 1. Vervolgens schrijf je op 1 regel hoeveel termen van de meetkundige rij \[\frac{1}{2}, \frac{1}{4}, \frac{1}{8}, \frac{1}{16} \cdots\] je minimaal moet optellen om een getal te bekomen die groter is dan het geven getal. Je geeft ook de bekomen som.
Stel dat de gebruiker het getal 0.989 opgeeft dan is \[\frac{1}{2} + \frac{1}{4} + \frac{1}{8} + \frac{1}{16} + \frac{1}{32} + \frac{1}{64} = 0.984375\] net te klein. De som van de eerste 7 termen voldoet wel: \[\frac{1}{2} + \frac{1}{4} + \frac{1}{8} + \frac{1}{16} + \frac{1}{32} + \frac{1}{64} + \frac{1}{128} = 0.9921875\]
Invoer:0.989
7 0.9921875