Что я имею:
n = 5
0, 0, 0, 0, 1000, 0, 0, 0, 0
Что я хочу:
0, 0, 0, 0, 200, 200, 200, 200, 200, 0, 0...
Поэтому, когда вы видите значение в верхней строке (1000), нижняя строка будет равномерно делить это значение n раз, пока сумма всех разбиений не станет равной исходному значению.
Я бы предпочел избегать использования VB, если это возможно.
EDIT1:
Гарантируете ли вы, что любое значение, с которым вы столкнетесь, будет поровну делиться на n? Нет, однако предположим, что если сумма <1, продолжайте
Вы гарантированы, что будет достаточно клеток для n делений? нет
Вы гарантировано, что будет только одно ненулевое значение? Нет, это будет кратно, если в верхнем ряду будет видно другое значение, а нижний ряд не завершит разбиение, нижний ряд добавит старые + новые разбиения
Будет ли ненулевое значение всегда находиться в одной и той же позиции? Нет может появиться в любой позиции, кроме первой
EDIT2:
Чтобы быть прозрачным, я пытаюсь равномерно распределить большие долларовые затраты на n лет, может быть, это будет лучшим примером:график ожидаемого ввода и ожидаемого результата
Обратите внимание, что:
Процесс расщепления входного значения должен происходить до тех пор, пока сумма соответствующих расщеплений не станет равной соответствующему входному значению.
Если другое входное значение будет видно, когда мы еще не закончим разбиение, строка «Выход» будет продолжать суммировать разбиения, пока не будет выполнено условие в первой точке для каждого входного значения.