Присоединиться

11 класс·средний уровень

Ниже на четырёх языках записан алгоритм. Получив на вход число x, этот

Условие

Ниже на четырёх языках записан алгоритм. Получив на вход число 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 Bvar 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 <iostream> using namespace std;int main(){ int x, a, b; cin >> x; a=0; b=1; while (x>0){ a=a+1; b=b*(x%10); x= x/10; } cout << a << endl << b endl;}алгначцел x, a, bввод xa:=0; b:=1нц пока x>0 a:=a+1 b:=b*mod(x,10) x:=div(x,10)кцвывод a, нс, bкон
Python
x = int(input())a = 0b = 1while x > 0: a += 1 b *= (x % 10) x //= 10print(a)print(b)

Ответ

Ответ и полный разбор откроются после входа

Посмотреть ответ

Решение по шагам

  1. Как рассуждать

    Решение. Рассмотрим цикл, число шагов которого зависит от изменения переменной x: while x > 0 do begin ... x:= x div 10; end; Т. к. оператор div оставляет целую часть от деления, то при делении на 10 это равносильно отсечению последней цифры. Из приведенного цикла видно, что на каждом шаге от десятичной записи x отсекается последняя цифра до тех пор, пока все цифры не будут отсечены, то есть x не станет равно 0; поэтому цикл выполняется столько раз, сколько цифр в десятичной записи введенного числа, при этом число a столько же раз увеличивается на

Осталось ещё 4 шага

  1. Следовательно, конечное значение a совпадает…

  2. Другого представления, в котором все…

  3. Приведём другое решение на языке Python. for…

  4. x //= 10 if a == 2 and b == 21: print(i) break…

Получить полное решение

Бесплатно · займёт минуту

Другие задачи по теме «Анализ программы с циклами и условными операторами»