Вопрос по информатике:
Ниже записана программа. Получив на вход число , эта программа
печатает два числа, a и b. Укажите наибольшее из чисел , при вводе которых алгоритм печатает сначала 2, а потом 8.
var x, a, b: integer;
begin
readln(x);
a:=0; b:=0;
while x > 0 do begin
a:= a + 1;
b:= b + (x mod 100);
x:= x div 100;
end;
writeln(a); write(b);
end.
Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?
Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок - бесплатно!
- 07.06.2015 02:38
- Информатика
- remove_red_eye 7675
- thumb_up 23
Ответы и объяснения 2
Т.к по условию программа выводит сначала 2, то цикл выполняется 2 раза.
В переменной b с конца отрезаются два остатка, а их сумма суммируется.
x div 100 отрезает сотни, делаем вывод о том, что число трехзначное.
Ответ: 800
- 08.06.2015 01:46
- thumb_up 44
Тогда если a = 2 значит x лежит в диапазоне от 100 до 9999. Например при x=100 на первой итерации a=a+1=1 ,x=x div 100=1, 1>0 цикло продолжается a:=a+1=2; x:=x div 100=0. При x=9999 на первой итерации a=a+1=1 ,x=x div 100=99, 99>0 цикло продолжается a:=a+1=2; x:=x div 100=0.
К переменной b прибавляется 2 последние цифры числа x. Если в числе x будет четыре цифры то после первой итерации в числе x останется 2 цифры. Это значит что даже при минимальном четырехзначном числе x=1000 b=b+(10 mod 100)=b+10=10 мы получим значение большее 8. Значит нам подходят только трехзначные числа. Чтобы число было максимальным ставим 8 в сотни:800.
- 09.06.2015 02:02
- thumb_up 10
Знаете ответ? Поделитесь им!
Есть сомнения?
Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.
Трудности с домашними заданиями? Не стесняйтесь попросить о помощи - смело задавайте вопросы!
Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.