Дано натуральное число N. Вычислить разницу между самой большой и самой маленькой цифрой в записи этого числа.
// PascalABC.NET 3.1, сборка 1267 от 10.07.2016 begin var s:=ReadlnString('Натуральное число:').Distinct; Writeln('Макcимальная разница в цифрах: ',Integer(s.Max)-Integer(s.Min)) end. Тестовое решение Натуральное число: 3456634642452343053000523424136240235341 Макcимальная разница в цифрах: 6
begin var digits := ReadInteger('n =').ToString().ToCharArray() .Where(c -> c.IsDigit()) .Select(c -> StrToInt(c.ToString())); // PrintLn(digits); WriteLn(digits.Max - digits.Min); end.
Что-то мне подсказывает, что Ваше решение сложнее и длиннее. И ограничено числами в 16.1 млн.
а ваше решение вообще никак не работает со случайными ошибками)
Напоминаю одно из базовых правил Сервиса: задание не должно тестировать входные данные, если это не оговорено условиями задания.
Кстати, это же правило действует в заданиях олимпиад, ЕГЭ, ГИА.
это даже правило... буду знать
Да, чтобы не превращать программы в монстров поверками типов, диапазонов и т.д.
Представляете, сказано, что нужно найти корень уравнения на отрезке a,b, указано, что [a;b] - интервал изоляции корня, а мы начинаем требовать от автора решения проверки, так ли это?
жалко не поделиться, раз уже решила
Var n,ni,ma,mi,i:int64; nstr:string; begin ma:=0; mi:=10; read(n); nstr:=inttostr(n); for i:=1 to length(nstr) do begin ni:=strtoint(nstr[i]); if ni>ma then ma:=ni; if ni end; writeln(ma-mi); end.
Неправда Ваша. Только что вбил Ваш код с заменой на max/min в PascalABC.NET 3.1, сборка 1267 от 10.07.2016 - компиляция идет без ошибок
это классическое решение данной задачи
var n: longint; t, max, min: byte; begin readln(n); max := n mod 10; min := max; while n > 0 do begin t := n mod 10; if t > max then max := t; if t < min then min := t; n := n div 10; end; writeln(max - min); end.
Это язык какой? Free Pascal?
Нельзя писать max и min. Ругается))) Думает, это функция
ma вместо max, mi вместо min. И вообще такие задачи класически через mod и div делаются
PascalABC NET
если нет конечно повышенных требований на длину числа
Ну и ладно. Возможно, я ошибся. Просто на другой версии Паскаля, на которой раньше я учился, частенько выскакивала такая ошибка, при каких то других действиях. Я уже подпривык ставить так
ABC.NET даже на кириллице идентификаторы позволяет писать, а еще есть экранирующий символ для имен, совпадающих с зарезервированными словами)))