Есть ответ 👍

Проверить, есть ли в четырехзначном числе одинаковые цифры

300
500
Посмотреть ответы 2

Ответы на вопрос:

FrenkieMC
4,7(22 оценок)

//pascal abc.net v3.0 сборка 1111 var    a,i: integer;   s: string; begin readln(a); str(a,s); //переводим число в строку, вот такой я нехороший for a: =1 to length(s)-1 do   for i: =a+1 to length(s) do   if s[a]=s[i] then     begin;     writeln('yes');     exit;     end; writeln('no'); end.пример ввода: 1224пример вывода: yes
Raz1elGG
4,4(71 оценок)

Вданном случае наилучшей является стратегия половинного деления. сначала определяем страницу. будем делить каждый раз количество страниц, содержащих нужную, пополам. первый вопрос: "нужная страница имеет номер больше 40? " если да, то рассматриваем страницы с 41 по 80, если нет - то страницы с 1 до 40. второй вопрос для случая, когда номер страницы был больше 40 будет выглядеть так: "нужная страница имеет номер больше 60? ". а если номер страницы был не больше 40, то спрашиваем "нужная страница имеет номер больше 20? ". при такой схеме количество необходимых вопросов будет равно 7 ( 2⁶< 80< 2⁷). найдя нужную страницу по такой же схеме ищем номер слова (от 1 до 50). поскольку 2⁵< 50< 2⁶, то потребуется задать 6 вопросов. 7 вопросов для определения номера страницы и 6 для определения номера слова на ней - всего 13 вопросов. поэтому за 12 вопросов отгадать слово не удастся. в то же время, если бы можно было пронумеровать все слова от 1 до 4000 (50х80=4000) и задавать вопросы по порядковым номерам слов, то 12 вопросов хватило бы (2¹¹< 4000< 2¹²)

Популярно: Информатика