function DifNum(a: integer): integer; var se: set of integer; i: integer; begin while a > 0 do begin if a mod 10 in se then begin DifNum := 0; exit; end else include(se, a mod 10); a := a div 10; end; DifNum := 1; end;
begin read(l, r); for i := l to r do counter += DifNum(i); writeln(counter); end.
//Альтернативное решение на Паскале
Var l,r:integer; begin read(l,r); writeln(range(l,r).where(x -> x.tostring.toarray.distinct.count=length(x.tostring)).Count); end.
Or - "ИЛИ". Если одно из условий верно, то и все выражение принимает истину [ 0 or 1 = 1 ; 1 or 0 = 1; 1 or 1 = 0, 0 or 0 = 0], где 1 - истина, а 0 - ложь у тебя условие If(k>9) or (k<14) then условие k > 9 выполняется, а значит и все выражение верно Нужно заменить "OR" на "AND" оператор "И". [ 1 and 1 = 1 ] при всех остальных - ложь
Вот код
var k: integer; begin readln(k); if k > 17 then Writeln('ваша оценка 5. Молодец!'); if (k > 13) and (k < 18) then Writeln('ваша оценка 4.'); if(k > 9) and (k < 14) then Writeln('ваша оценка 3.'); if k < 10 then Writeln('ваша оценка 2.'); end.
ответ: в результате выполнения данного алгоритма, b = 28