ответ: у тебя не правильное .в начале нужно найти максимальное число не оканч.на 3 , а потом вывести макс. число оканчивающееся на 3.ты разберись. но если ты шаришь в икт и просто не знаешь , как задать условие ,то там нужно через целые и кратные (div/mod) в твоем случае будет как-то так
if a mod 10=3 and a> max then max: =a
ну если ты ленивая жо#а то вот:
var a,b,k,max: integer;
begin
writeln('введите количество чисел > > n ');
readln(n);
max: =0;
for k: = 1 to n do;
begin
writeln('введите числа > > a ');
readln(a);
if (a mod 10=3) and (a> max) then max: =a
end;
writeln('самое больше число оканчивающееся на 3 -',max)
end.
в полной правильности я не уверен(т.к у меня нету паскаля),проверь компилятором
63
Объяснение:
Значащие разряды - цифры влияющие на конечный результат, например: 11001-все цифры значащие, 0010110 - два нуля в начале не значащие, их можно отбросить, но по условию даётся целое число, которое преобразовывают в двоичную систему, значит не значащих чисел там не должно быть.
Т.к. по условие R меньше 100 и является результатом алгоритма запись R не должна включать 8 чисел (2^7=128), 8 чисел мы получаем только если в исходном их 4, значит ищем число с 3 знаками.
Самое большое двоичное число из 3 знаков - 111,(7 в десятичной-нечётное) по алгоритму добавляем ещё 3 единицы. Получается 111111 в двоичной, тоесть 63.