infoegehelp.ru

Успешно сдать ЕГЭ по информатике
  • Главная
  • Контакты
  • Карта сайта
  • Помощь сайту
Важно
  • Демо варианты ЕГЭ
  • Учим числа: 2 в степени
  • Биты, байты, килобайты
Решение задач
  • Задачи вне основных разделов информатики
Разделы информатики
  • 2011-12-18-14-33-54Системы счисления
  • 2011-12-18-16-45-20Алгебра логики
  • 2011-12-18-16-55-26Программирование
  • 2011-12-18-16-53-40Кодирование информации
  • 2011-12-18-16-56-19Компьютерные сети и Интернет
  • -excelЭлектронные таблицы (Excel)
  • 2011-12-18-16-57-50Базы данных
  • 2011-12-18-16-58-50Графы
  • 2011-12-18-17-00-15Файловая система
  • Устройство компьютера
  • ПО компьютера

Разбор задачи B8 (демо ЕГЭ 2013)

Ниже на четырёх языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 21.
БейсикПаскаль
DIM X, A, B AS INTEGER
INPUT X
A=0: B=1
WHILE X > 0
   A = A+1
   B = B*(X MOD 10)
   X = X \ 10
WEND
PRINT A
PRINT B
var x, a, b: integer;
begin
   readln(x);
   a:=0; b:=1;
   while x>0 do
   begin
      a:=a+1;
      b:=b*(x mod 10);
      x:= x div 10
   end;
   writeln(a); write(b);
end.
Си
Алгоритмический
#include<stdio.h>
void main()
{
   int x, a, b;
   scanf("%d", &x);
   a=0; b=1;
   while (x>0){
      a=a+1;
      b=b*(x%10);
      x= x/10;
   }
   printf("%d\n%d", a, b);
}
алг
нач
   цел x, a, b
   ввод x
   a:=0; b:=1
   нц пока x>0
      a:=a+1
      b:=b*mod(x,10)
      x:=div(x,10)
   кц
   вывод a, нс, b
кон

Ответ: 37
Решение:

В программе отражена работа цикла while ("пока"). Суть программы следующая:

Вводится какое-то число x, затем мы анализируем цифры, входящие в это число. В каждом проходе цикла мы делим нацело x на 10. Соответственно, двигаемся от единиц к более старшим разрядам: десяткам, сотням и т.д.  Затем мы выводим количество цифр, входящих в введенное число, и произведение этих цифр.

a - счетчик: хранит число, которое показывает сколько проходов было выполнено в цикле (сколько цифр в числе). На выходе печатается значение a=2, поэтому цикл выполнялся 2 раза. Следовательно, в числе содержится 2-е цифры.

b - хранит произведение цифр, входящих в число. Т.к. в числе 2-е цифры, то в b будет записано произведение цифр, находящихся в позиции "единица" и "десяток", соответственно.

На выходе b=21, поэтому произведение равно 21. 21=3*7, поэтому входящее число может быть равно 37 или 73. По условию, число должно быть наименьшим.

Получили, x=37.

Перейти к другим задачам.

 

Rambler's Top100

© Латыпова В.А., 2012-2020. Все права защищены.
Копирование материалов сайта только с разрешения администрации сайта