1) Выводит 2 2) var N: longint; digit, maxdigit: integer;
begin readln(N); maxdigit := 10; // нужно присваивать 0 while N > 10 do // нужно написать N > 0 begin digit := N mod 10; if digit > maxdigit then maxdigit := digit; N := N div 10; end; writeln(digit); // нужно вывести maxdigit end.
Верный код
var N: longint; digit, maxdigit: integer;
begin readln(N); maxdigit := 0; while N > 0 do begin digit := N mod 10; if digit > maxdigit then maxdigit := digit; N := N div 10; end; writeln(maxdigit); end.
1) При вводе числа 256 программа выведет 3, т.к. ввели n=256 n>0 ? - да, значит дальше идёт блок из цикла, и будет он повторятся до тех пор пока n будет >0. d:=256 mod 10 d:=6, т.к. mod берёт остаток от деления. n:=256 div 10 n:=25, т.к. div делит нацело и остаток не берёт. sum:=sum+1; sum:=1;
цикл первый раз закончился и опять проверяется условие n>0, если да, то опять запускает цикл. n:=25>0 d:=25 mod 10 d:=5 n:=25 div 10 n:=2 sum:=1+1 sum:=2;
опять закончился цикл и проверяется условие n>0, n:=2>0 d:=2 mod 10; d:=2; n:=2 div 10 n:=0 sum:=2+1; sum:=3;
заканчивается цикл и проверяется условие n>0? n:=0 >0 - нет. цикл заканчивается и выводится значение sum. ответ: 3. 2) 120, 210, 111 и т.д.
и что еще надо щас сделаю