Прежде всего нужно определить остаток от деления исходно числа на 3. для этого, т.к. у вас будет строка вам нужно посчитать сумму отдельных символов строки и взять остаток суммы от деления на 3. Если этот остаток равен : А) 0, то нужно увеличить любую цифру числа на 3 или 6 или 9 и нужно изменить 1 цифру так, что бы остаток от деления на 3 не изменился. Б) 1, то одну цифру числа нужно увеличить на 2 или 5 В) 3, то на 1 или 4 или 7 Для того чтобы число было макс. большим нужно брать максимально левую цифру для увеличения. Ну, как-то так
Почему-то мой ответ удалили, попробую еще раз. 1) Вводим число, как массив A[n] ; n - количество цифр в числе. 2) S = 0 ; S - сумма цифр. Если S делится на 3, то и число делится на 3. 3) Цикл по i от 1 до n 3.1) S = S + A[i] 3.2) Конец цикла по i 4) Ost = S Mod 3 ; находим остаток от деления S на 3. 4.1) Если Ost = 0, то прибавляем A[1] = A[1] + 3 до тех пор, пока A[1] <= 9 4.2) Если Ost = 1, то A[1] = A[1] + 2 4.2.1) Прибавляем A[1] = A[1] + 3 до тех пор, пока A[1] <= 9 4.3) Если Ost = 2, то A[1] = A[1] + 1 4.3.1) Прибавляем A[1] = A[1] + 3 до тех пор, пока A[1] <= 9 5) Выводим массив A[n] 6) Конец.
Модераторы, не удаляйте ответ, я его ниоткуда не списал, а сам придумал! Если он один в один совпадает с алгоритмом на каком-то сайте, то я не виноват!
А) 0, то нужно увеличить любую цифру числа на 3 или 6 или 9 и нужно изменить 1 цифру так, что бы остаток от деления на 3 не изменился.
Б) 1, то одну цифру числа нужно увеличить на 2 или 5
В) 3, то на 1 или 4 или 7
Для того чтобы число было макс. большим нужно брать максимально левую цифру для увеличения.
Ну, как-то так
1) Вводим число, как массив A[n] ; n - количество цифр в числе.
2) S = 0 ; S - сумма цифр. Если S делится на 3, то и число делится на 3.
3) Цикл по i от 1 до n
3.1) S = S + A[i]
3.2) Конец цикла по i
4) Ost = S Mod 3 ; находим остаток от деления S на 3.
4.1) Если Ost = 0, то прибавляем A[1] = A[1] + 3 до тех пор, пока A[1] <= 9
4.2) Если Ost = 1, то A[1] = A[1] + 2
4.2.1) Прибавляем A[1] = A[1] + 3 до тех пор, пока A[1] <= 9
4.3) Если Ost = 2, то A[1] = A[1] + 1
4.3.1) Прибавляем A[1] = A[1] + 3 до тех пор, пока A[1] <= 9
5) Выводим массив A[n]
6) Конец.
Модераторы, не удаляйте ответ, я его ниоткуда не списал, а сам
придумал! Если он один в один совпадает с алгоритмом на каком-то сайте, то я не виноват!