Дано число. В этом числе необходимо изменить одну цифру таким образом, чтобы новое число делилось на 3 и было бы максимально возможным. В исходном числе нужно обязательно изменить одну цифру, даже если исходное число уже делило...

Дано число. В этом числе необходимо изменить одну цифру таким образом, чтобы новое число делилось на 3 и было бы максимально возможным. В исходном числе нужно обязательно изменить одну цифру, даже если исходное число уже делилось на 3. Программа получает на вход одно длинное натуральное число. Длинна числа может достигать 100 цифр. Программа должна вывести другое натуральное число, удовлетворяющее условиям: 1) Новое число должно отличаться от данного ровно одной цифрой. 2) Новое число должно делиться на 3. 3) Новое число должно быть максимально возможным из всех таких чисел. Пример: Ввод: 123 Вывод:723
Гость
Ответ(ы) на вопрос:
Гость
var s: string;     i,j,x,y: integer; begin    writeln('задайте число (целое)');    readln(s);    x:=0;    for i:=1 to Length(s) do      x:=x+Ord(s[i])-48;  { число разряда из символа}      x:=x mod 3;      x:=3-x; { какое число добавить к разряду }      for i:=1 to Length(s) do      begin        y:=Ord(s[i])-48+x;        if (y)<9 then        begin           for j:=1 to 3 do           if (y+3<9) then y:=y+3;           s[i]:=chr(y+48);            break;       end;    end;    writeln('новое число:  ',s); end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы