profile
Размещено 5 лет назад по предмету Информатика от daha17

Некоторый алгоритм из одной цепочки десятичных цифр получает новую цепочку следующим образом:

1. первая цифра исходной цепочки не меняется; 2. каждая следующая цифра (начиная со второй) заменяется суммой этой цифры и предыдущей цифры исходной цепочки. Сумма вычисляется до тех пор, пока не будит получена десятичная цифра. Например, сумма цифр 7 и 5 равна 12. Это число, а не десятичная цифра, значит, необходимо суммирование продолжить: 1+2=3. Это цифра, следовательно, суммирование закончено. Например, если исходная цепочка 4 7 2 8 1, то результатом работы этого алгоритма будет цепочка 4 2 9 1 9. Дана цепочка символов 1 7 5 2 6 .применить к этой цепочке описанный алгоритм дважды. какая цифра чаще всего встречается в получившейся цепочке?

  1. Ответ на вопрос
    Ответ на вопрос дан Аккаунт удален

    Мне понравилась задачка, как мне кажется, наиболее изящное решение через рекурсивную функцию

    Пусть А(Размер) - массив, в котором хранится исходная цепочка. Тогда основная процедура будет иметь вид

    //*******************************************

    Процедура Сформировать()
    ТХТ=""+А(1);
    Для ц=2 по Размер Цикл
          След=Следующий(А(ц-1)+А(ц));
          ТХТ=ТХТ+";"+След;
    КонецЦикла;
    Сообщить(ТХТ);
    КонецПроцедуры

     

    Вот и всё! Осталось написать процедуру-функцию Следующий

    У меня она рекурсивная

    //**********************************************

    Функция Следующий(тЧ)
    Если тЧ<10 Тогда
        Возврат(тЧ);
    Иначе 
        Д=Цел(тЧ/10);
         Е=тЧ-Д*10;
         Возврат(Следующий(Д+Е));
    КонецЕсли;
    КонецФункции

     

    Вот теперь совсем всё.

    При подстановке цепочки 1;7;5;2;6 программа выдала 1;8;3;7;8 то есть чаще встречается 8.

     

    Замечание1 Можешь написать и не рекурсивную, это просто, НО рекурсия красивей(как мне кажется), да и просто делать дальнейшие модификации задачи(например для исходных многозначных чисел).

    Замечание2 Я, по сути дела, "вручную" находил десятки и единицы, если в языке, которым ты владеешь, есть функции типа, "остаток от деления", можешь их использовать 

    Замечание3 Программа абсолютно рабочая, чуть-чуть изменена для детского восприятия, написана на 1С77. Перевести на свой язык, думаю, сумеешь.

    Успехов!

     

     

    Кстати, вот что у меня получилось(не адаптированный текст), если исходная цепочка может содержать любые неотрицательные целые числа, а на выходе - сумма цифр первого, ну и Сумма цифр предыдущего с текущим. Как видишь, практически тот же текст, но более общий.

     

    Функция Следующий(тЧ)
    Если тЧ<10 Тогда
       Возврат(тЧ);
    Иначе
       сТЧ=Строка(тЧ);
       чч=0;
       Для цц=1 по СтрДлина(сТЧ) Цикл
          чч=чч+Число(Сред(сТЧ,цц,1));
       КонецЦикла;

       Возврат(Следующий(чч));
    КонецЕсли;
    КонецФункции

    //*******************************************
    Процедура Сформировать()
    ТХТ=""+Следующий(Цепь.ПолучитьЗначение(1));
    Для ц=2 по Цепь.РазмерСписка() Цикл
       След=Следующий(Цепь.ПолучитьЗначение(ц-1)+Цепь.ПолучитьЗначение(ц));
       ТХТ=ТХТ+";"+След;
    КонецЦикла;
    Сообщить(ТХТ);
    КонецПроцедуры

     

     

Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.