1. A method for writing to a multiple-bit-per-cell (MBPC) non-volatile memory, comprising: performing a write operation on a selected memory cell using a first set of programming parameters for the write operation, wherein the first set of programming parameters are such that the write operation changes a threshold voltage of a typical memory cell to a target threshold voltage, the first set of programming parameters including a first programming voltage and a first duration for applying the first programming voltage to the selected memory cell during each programming cycle of the write operation; determining whether the selected memory cell has the target threshold voltage after the write operation; and in response to the selected memory cell not having the target threshold voltage, applying additional programming to the selected memory cell, wherein the additional programming uses a second set of programming parameters that differ from the first set of programming parameters, the second set of programming parameters including a second programming voltage and a second duration for applying the second programming voltage to the selected memory cell during each programming cycle of the additional programming.