Алгоритмы не зависят от языка. Запрашивать «алгоритм на C #» не имеет особого смысла.
При запросе алгоритм (как если бы он был только один) аналогично ошибочен.
Итак, давайте сделаем это шаг за шагом.
Во-первых, отметим, что имеет значение только последняя цифра результата. Итак, мы подведем итоги наших существующих цифр, а затем проигнорируем все, кроме последней. Хороший способ сделать это - взять сумму по модулю 10.
Итак, у нас есть сумма существующих цифр, и мы хотим добавить к ней еще одну цифру, чтобы сумма двух заканчивалась на 1.
В подавляющем большинстве случаев это будет означать sum + newDigit = 11
. Перестановка дает newDigit = 11 - sum
Затем мы можем взять это по модулю 10 (снова), чтобы уменьшить его до одной цифры.
Наконец, мы умножаем исходное число на 10 и добавляем к нему нашу новую цифру.