Подготовка к ЕГЭ: Задание 20

Задание 20 Ниже на 4-х языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b.  Укажите наибольшее из таких чисел x,  при вводе которых алгоритм печатает сначала 3, а потом 5. Бейсик Паскаль 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 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(«%dn%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 кон   Решение:  Разберемся, что означают переменные x, a, b. При инициализации x – исходное натуральное число;  a=0, b=1. Посмотрим, что происходит при выполнении основного цикла      нцпока x>0          a:=a+1          b:=b*mod(x,10)          x:=div(x,10)      кц Значение a при каждом выполнении цикла увеличивается на 1, значит итоговое значение переменной a равно количеству выполнения цикла. От числа x при каждом выполнении цикла «отбрасывается» последняя цифра (операция x:=div(x,10) ). Таким об... № прохода Начальные значения Рабочие значения Конечные значения x a b mod(x, 10) div(x, 10) x a b 1 423 0 1 3 42 42 1 3 2 42 1 3 2 4 4 2 6 3 4 2 6 4 0 0 3 24   Таким образом, в задаче требуется найти наибольшее трехзначное число, в котором произведение цифр равно 5. Это число – 511. Ответ: 511
Раздел Информатика
Класс -
Тип Другие методич. материалы
Автор
Дата
Формат docx
Изображения Нет
For-Teacher.ru - все для учителя
Поделитесь с коллегами:

Задание 20

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

Бейсик

Паскаль

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

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(«%dn%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

кон

Решение: Разберемся, что означают переменные x, a, b. При инициализации x - исходное натуральное число; a=0, b=1. Посмотрим, что происходит при выполнении основного цикла

нц пока x>0

a:=a+1

b:=b*mod(x,10)

x:=div(x,10)

кц

Значение a при каждом выполнении цикла увеличивается на 1, значит итоговое значение переменной a равно количеству выполнения цикла. От числа x при каждом выполнении цикла «отбрасывается» последняя цифра (операция x:=div(x,10) ). Таким образом, количество выполнений цикла (оно же - напечатанное значение переменной a) равно количеству цифр в исходном числе x. Значение переменой b умножается на выражение mod(x,10). Это - последняя цифра текущего значения x, т.е. очередная цифра исходного числа. Поэтому, итоговое значение переменной b равно произведению цифр исходного числа.

Пример выполнения цикла, если начальное значение x=423 приведен в таблице.

№ прохода

Начальные значения

Рабочие значения

Конечные значения

x

a

mod(x, 10)

div(x, 10)

x

a

1

423

0

1

3

42

42

1

3

2

42

1

3

2

4

4

2

6

3

4

2

6

4

0

0

3

24

Таким образом, в задаче требуется найти наибольшее трехзначное число, в котором произведение цифр равно 5. Это число - 511.

Ответ: 511

B7.2 ( ege.yandex.ru - 2) Ниже на 4-х языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 14.

Бейсик

Паскаль

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

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(«%dn%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

кон

Решение: Разберемся, что означают переменные x, a, b. При инициализации x - исходное натуральное число; a=0, b=1. Посмотрим, что происходит при выполнении основного цикла

нц пока x>0

a:=a+1

b:=b*mod(x,10)

x:=div(x,10)

кц

Значение a при каждом выполнении цикла увеличивается на 1, значит итоговое значение переменной a равно количеству выполнения цикла. От числа x при каждом выполнении цикла «отбрасывается» последняя цифра (операция x:=div(x,10) ). Таким образом, количество выполнений цикла (оно же - напечатанное значение переменной a) равно количеству цифр в исходном числе x. Значение переменой b умножается на выражение mod(x,10). Это - последняя цифра текущего значения x, т.е. очередная цифра исходного числа. Поэтому, итоговое значение переменной b равно произведению цифр исходного числа.

Таким образом, в задаче требуется найти наименьшее трехзначное число, в котором произведение цифр равно 14. Число 14 можно только одним способом представить в виде произведения трех однозначных чисел (порядок чисел здесь не учитывается): 14 = 1 х 2 х 7. Наименьшее число, составленное из этих цифр - 127.

Ответ: 127

B7.3 ( ege.yandex.ru - 3) Ниже на 4-х языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 8.

Бейсик

Паскаль

DIM X, A, B AS INTEGER

INPUT X

A=0: B=0

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:=0;

while x>0 do begin

a:=a+1;

b:=b+(x mod 10);

x:= x div 10;

end;

writeln(a); write(b);

end.

Си

Алгоритмический

#include

void main() {

int x, a, b;

scanf(«%d», &x);

a=0; b=0;

while (x>0){

a=a+1;

b=b + (x%10);

x= x/10;

}

printf(«%dn%d», a, b);

}

алг

нач

цел x, a, b

ввод x

a:=0; b:=0

нц пока x>0

a:=a+1

b:=b+mod(x,10)

x:=div(x,10)

кц

вывод a, нс, b

кон

Решение: Разберемся, что означают переменные x, a, b. При инициализации x - исходное натуральное число; a=0, b=0. Посмотрим, что происходит при выполнении основного цикла

нц пока x>0

a:=a+1

b:=b+mod(x,10)

x:=div(x,10)

кц

Значение a при каждом выполнении цикла увеличивается на 1, значит итоговое значение переменной a равно количеству выполнения цикла. От числа x при каждом выполнении цикла «отбрасывается» последняя цифра (операция x:=div(x,10) ). Таким образом, количество выполнений цикла (оно же - напечатанное значение переменной a) равно количеству цифр в исходном числе x. К значению переменой b прибавляется значение выражения mod(x,10). Это - последняя цифра текущего значения x, т.е. очередная цифра исходного числа. Поэтому, итоговое значение переменной b равно сумме цифр исходного числа.

Таким образом, в задаче требуется найти наибольшее двузначное число, в котором сумма цифр равно 8. Это число - 80.

Ответ: 80

B7.4 ( ege.yandex.ru - 4) Ниже на 4-х языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наименьшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 8.

Бейсик

Паскаль

DIM X, A, B AS INTEGER

INPUT X

A=0: B=0

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:=0;

while x>0 do begin

a:=a+1;

b:=b+(x mod 10);

x:= x div 10;

end;

writeln(a); write(b);

end.

Си

Алгоритмический

#include

void main() {

int x, a, b;

scanf(«%d», &x);

a=0; b=0;

while (x>0){

a=a+1;

b=b + (x%10);

x= x/10;

}

printf(«%dn%d», a, b);

}

алг

нач

цел x, a, b

ввод x

a:=0; b:=0

нц пока x>0

a:=a+1

b:=b+mod(x,10)

x:=div(x,10)

кц

вывод a, нс, b

кон

Решение: Разберемся, что означают переменные x, a, b. При инициализации x - исходное натуральное число; a=0, b=0. Посмотрим, что происходит при выполнении основного цикла

нц пока x>0

a:=a+1

b:=b+mod(x,10)

x:=div(x,10)

кц

Значение a при каждом выполнении цикла увеличивается на 1, значит итоговое значение переменной a равно количеству выполнения цикла. От числа x при каждом выполнении цикла «отбрасывается» последняя цифра (операция x:=div(x,10) ). Таким образом, количество выполнений цикла (оно же - напечатанное значение переменной a) равно количеству цифр в исходном числе x. К значению переменой b прибавляется значение выражения mod(x,10). Это - последняя цифра текущего значения x, т.е. очередная цифра исходного числа. Поэтому, итоговое значение переменной b равно сумме цифр исходного числа.

Таким образом, в задаче требуется найти наименьшее двузначное число, в котором сумма цифр равно 8. Это число - 17.

Ответ: 17

B7.5 ( ege.yandex.ru - 5) Ниже на 4-х языках записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа a и b. Сколько есть таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 10?

Бейсик

Паскаль

DIM X, A, B AS INTEGER

INPUT X

A=0: B=0

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:=0;

while x>0 do begin

a:=a+1;

b:=b + x mod 10);

x:= x div 10;

end;

writeln(a); write(b);

end.

Си

Алгоритмический

#include

void main() {

int x, a, b;

scanf(«%d», &x);

a=0; b=0;

while (x>0){

a=a+1;

b=b +(x%10);

x= x/10;

}

printf(«%dn%d», a, b);

}

алг

нач

цел x, a, b

ввод x

a:=0; b:=0

нц пока x>0

a:=a+1

b:=b+mod(x,10)

x:=div(x,10)

кц

вывод a, нс, b

кон

Решение: Разберемся, что означают переменные x, a, b. При инициализации x - исходное натуральное число; a=0, b=0. Посмотрим, что происходит при выполнении основного цикла

нц пока x>0

a:=a+1

b:=b+mod(x,10)

x:=div(x,10)

кц

Значение a при каждом выполнении цикла увеличивается на 1, значит итоговое значение переменной a равно количеству выполнения цикла. От числа x при каждом выполнении цикла «отбрасывается» последняя цифра (операция x:=div(x,10) ). Таким образом, количество выполнений цикла (оно же - напечатанное значение переменной a) равно количеству цифр в исходном числе x. К значению переменой b прибавляется значение выражения mod(x,10). Это - последняя цифра текущего значения x, т.е. очередная цифра исходного числа. Поэтому, итоговое значение переменной b равно сумме цифр исходного числа.

Таким образом, в задаче требуется найти количество двузначных чисел, у которых сумма цифр равно 10. Таких чисел есть девять: 19, 28, 37, 46, 55, 64, 73, 82, 91.

Ответ: 9



© 2010-2022