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

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

L и M. Укажите наибольшее из таких чисел x, при вводе которых алгоритм

Условие

Ниже записана программа. Получив на вход число x , эта программа печатает два числа, L и M. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 7. БэйсикПаскаль
DIM X, L, M AS INTEGER INPUT X L=0: M=0 WHILE X > 0 L = L+1 M = M +(X MOD 10) X = X \ 10 WEND PRINT L PRINT Mvar x, L, M: integer;begin readln(x); L:=0; M:=0; while x>0 do begin L:=L + 1; M:=M + (x mod 10); x:=x div 10; end;writeln(L); write(M);end.
Си++Алгоритмический
#include <iostream>using namespace std;int main(){ int x, L, M; cin >> x; L=0; M=0; while (x>0){ L = L+1; M = M +(x%10); x = x/10; } cout << L << endl << M endl;}алгначцел x, L, Mввод xL:=0; M:=0нц пока x>0 L:=L+1 M:=M+mod(x,10) x:=div(x,10)кцвывод L, нс, Mкон
Python
x = int(input())L = 0M = 0while x > 0: L += 1 M += x % 10 x = x // 10print(L)print(M)

Ответ

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

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

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

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

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

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

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

  2. Из этих цифр составим наибольшее число…

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

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

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

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