Есть ответ 👍

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

242
267
Посмотреть ответы 2

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


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

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

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

процедура сформировать() тхт=""+а(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)+цепь.получитьзначение(ц));     тхт=тхт+"; "+след; конеццикла; сообщить(тхт); конецпроцедуры

 

 

езо1
4,5(30 оценок)

ответ:

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

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

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

    otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.

Подпишись на наш телеграмм канал

GTP TOP NEWS