Я прошу прощения заранее, потому что я все еще активно изучаю C ++, но думаю, что смогу воспроизвести желаемый результат в PHP во время циклов.Из того, что я мог бы получить, формула, которая вам понадобится, будет n = n - i , где i - итератор, который удваивается каждый день, а n - числосумки ...
$n = 10; // number of bags gathered
$i = 1; // iterator for day 1
$days = array($n); // create an array to help keep track of the days
$n = $n - $i; // day 1 has to be done outside the loop
array_unshift($days, $n); // prepend new n value to array
// while loop
while ($n > 0) {
$i = ($i * 2); // double the iterator each day (run)
$n = $n - $i;
if ($n > 0) {
array_unshift($days, $n); // prepend each new n value to array
}
}
// count each item in the array
echo $numberOfDays = count($days); // outputs 4
Несколько раз проверил это на ручке и бумаге с небольшими цифрами, и каждое из них оказалось правильным.Я предполагаю, что эта же концепция может быть применена к C ++.