№№ заданий Пояснения Ответы Ключ Добавить инструкцию Критерии
Источник Раздел кодификатора ФИПИ Справка
PDF-версия PDF-версия (вертикальная) PDF-версия (крупный шрифт) PDF-версия (с большим полем) Версия для копирования в MS Word
Задания
Задание 20 № 14235

Ниже на пяти языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 12.

 

БейсикPython

DIM X, A, B AS INTEGER

INPUT X

A = 0: B = 0

WHILE X > 0

  A = A + 1

  IF X MOD 2 = 0 THEN

    B = B + X MOD 10

  END IF

  X = X \ 10

WEND

PRINT A

PRINT B

x = int(input())

a=0; b=0

while x>0:

  a = a+1

  if x%2==0:

    b += x%10

  x = x//10

print(a, b)

ПаскальАлгоритмический язык

var x, a, b: integer;

begin

  readln(x);

  a := 0; b := 0;

  while x > 0 do

  begin

    a := a + 1;

    if x mod 2= 0 then

      b := b + x mod 10;

    x := x div 10;

  end;

  writeln(a); write(b);

end.

алг

нач

  цел x, a, b

  ввод x

  a := 0; b := 0

  нц пока x > 0

    a := a+1

    если mod(x,2)=0

      то b := b + mod(x,10)

    все

    x := div(x,10)

  кц

  вывод a, нс, b

кон

Си++

#include <iostream>

using namespace std;

int main()

{

  int x, a, b;

  cin >> x;

  a = 0; b = 0;

  while (x > 0) {

    a = a+1;

    if (x%2 == 0) {

      b = b + x%10;

    }

    x = x / 10;

  }

  cout << a << endl << b << endl;

  return 0;

}

 

Решение.

Данный алгоритм, получая на вход число x, считает количество цифр и складывает из них четные.

 

Эта часть программы суммирует четные числа, идя с конца:

if x mod 2= 0 then

b := b + x mod 10;

 

А эта — пока число не станет равным нулю, складывает количество раз прохождений через алгоритм, а также убирает последнюю цифру числа:

while x > 0 do

begin

  a := a + 1;

  ...

  x := x div 10;

end;

 

Таким образом, в числе три цифры. Сумма четных цифр 12. Так как необходимо наибольшее число, берем на первое место 9, оно нечетное (суммироваться не будет). На второе и третье место 8 + 4. Наибольшее из этих чисел ставим во второй разряд. В итоге получаем число 984.

 

Ответ: 984.

· ·