Все натуральные числа от 1 до N записаны подряд слева направо: 123456789101112...N. Сколько существует способов вычеркнуть все цифры полученного числа, кроме четырёх, чтобы оставшиеся цифры образовали (без перестановок) число 2...

Все натуральные числа от 1 до N записаны подряд слева направо: 123456789101112...N. Сколько существует способов вычеркнуть все цифры полученного числа, кроме четырёх, чтобы оставшиеся цифры образовали (без перестановок) число 2013?
Гость
Ответ(ы) на вопрос:
Гость
//То чувство, когда 2 часа работал над оптимизацией, а в итоге работает быстрее вариант, который писал 5 минут. //PascalABC.NET 3.2 сборка 1318 Var   i,j,k,m,n,count:integer;   s,s1:string; begin   readln(n); for i:=1 to n do   s+=inttostr(i); for i:=1 to length(s) do if (s[i]='2') or (s[i]='0') or (s[i]='1') or (s[i]='3') then s1+=s[i]; s:=s1; for i:=1 to length(s) do   if  s[i]='2' then     for j:=i+1 to length(s) do       if s[j]='0' then         for k:=j+1 to length(s) do           if s[k]='1' then             for m:=k+1 to length(s) do               if  s[m]='3' then inc(count); writeln(count); end. Пример ввода: 500 Пример вывода: 23760240
Не нашли ответ?
Ответить на вопрос
Похожие вопросы