Нужно ** C++ Дано число. В этом числе необходимо изменить одну цифру таким образом,чтобы...

0 голосов
124 просмотров

Нужно на C++

Дано число. В этом числе необходимо изменить одну цифру таким образом,чтобы новое число делилось на 3 и было бы максимально возможным. В исходном числе нужно обязательно изменить одну цифру,даже если исходное число уже делилось на 3.
Программа получает на вход одно длинное натуральное число.Длина числа может достигать 100 цифр.
Программа должна вывести другое натуральное число,удовлетворяющее условиям:
1)Новое число должно отличаться от данного ровно одной цифрой.
2)Новое число должно делиться на 3.
3)Новое число должно быть максимально возможным из всех таких чисел.


Информатика (55 баллов) | 124 просмотров
0

могу вам так рассказать как сделать ибо если кодом, это много писанины

0

Ну давай

0

хотя так тоже много писать, может вы уже что-то пробовали сами писать или в чем трудность самому сделать?

0

Я пытался написать,но не особо получается.Знаю только что циклы необходимы

0

Может попробуете?

0

ну, не только ещё строка вам будет нужна, в которую вы будете вводить число

0

Объяснить

0

ладно, щяс

Дан 1 ответ
0 голосов

Прежде всего нужно определить остаток от деления исходно числа на 3. для этого, т.к. у вас будет строка вам нужно посчитать сумму отдельных символов строки и взять остаток суммы от деления на 3. Если этот остаток равен  :
А) 0, то нужно увеличить любую цифру числа на 3 или 6 или 9 и нужно изменить 1 цифру так, что бы остаток от деления на 3 не изменился. 
Б) 1, то одну цифру числа нужно увеличить на 2 или 5
В) 3, то на 1 или 4 или 7
Для того чтобы число было макс. большим нужно брать максимально левую цифру для увеличения.
Ну, как-то так

(4.2k баллов)
0

А что для этого нужно?какие циклы

0

любые, но лучше for

0

Спасибо

0

Кстати,забыл спросить как сделать левую цифру больше