Ваш код «не» делает ничего необычного, for выполняется до тех пор, пока итоговое значение не превысит 4 000 000.
Например, если бы мне нужно было добавлять 20 каждый раз, когда мои циклы for к моему итоговому значению, и я проверяю каждыйвремя, если мой итог больше 50, он будет работать до тех пор, пока я не получу 60. не меньше 60 и никогда не будет 50, потому что я добавляю 20 для каждого.
, так как цикл добавляет 20 для каждого цикла,в вашем случае то же самое, просто добавьте if в свой цикл, проверяя, больше ли сумма, чем вы на самом деле хотите, если она есть, разбейте ее и не добавляйте значение, которое заставит ее пересечь желаемое значение.
Итак:
Мой цикл должен остановиться после того, как общее число равно 4 000 000, но по какой-то причине общее количество составляет 4 613 732.
кем вы являетесьдобавление, возможно, просто никогда не даст в общей сложности 4 000 000, а если это так, просто измените ваше состояние на total <= 4000000;
вместо total < 4000000;