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.
Если вынуть 94 конфет, то будут конфеты всех 3 видов.Пусть у нас по n конфет каждого вида.Тогда может так получиться, что мы вынем 2n конфет, и они будут только 2 видов. И только, вынув (2n+1)-ю конфету, мы получим все три.2n+1 = 942n = 93.Значит, конфет одного и другого вида по [93/2] = 46,а конфет третьего вида 47.Пусть ирисок и леденцов по 46, а шоколадных 47.Вынув 46 ирисок и 46 леденцов (92 конфет), мы получим 2 вида.Вынув 46 ирисок и 47 шоколадных (93), мы получим 2 вида.Вынув 46 леденцов и 47 шоколадных (93), мы получим 2 вида.И только вынув 94-ую (в 1 случае 93 и 94), мы получим 3 вида.ответ: всего конфет было 46 + 46 + 47 = 139.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку