Некоторый алгоритм из одной цепочки десятичных цифр получает новую цепочку следующим образом: 1. первая цифра исходной цепочки не меняется; 2. каждая следующая цифра (начиная со второй) заменяется суммой этой цифры и предыдущей цифры исходной цепочки. сумма вычисляется до тех пор, пока не будит получена десятичная цифра. например, сумма цифр 7 и 5 равна 12. это число, а не десятичная цифра, значит, необходимо суммирование продолжить: 1+2=3. это цифра, следовательно, суммирование закончено. например, если исходная цепочка 4 7 2 8 1, то результатом работы этого алгоритма будет цепочка 4 2 9 1 9. дана цепочка символов 1 7 5 2 6 .применить к этой цепочке описанный алгоритм дважды. какая цифра чаще всего встречается в получившейся цепочке?
Ответы на вопрос:
мне понравилась , как мне кажется, наиболее изящное решение через рекурсивную функцию
пусть а(размер) - массив, в котором хранится исходная цепочка. тогда основная процедура будет иметь вид
//*******************************************
процедура сформировать() тхт=""+а(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)+цепь.получитьзначение(ц)); тхт=тхт+"; "+след; конеццикла; сообщить(тхт); конецпроцедуры
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
squarenq10.04.2022 20:11
-
georggeorg03.01.2020 05:31
-
alijonsamara20023.08.2020 18:25
-
saule1961122513.06.2020 01:25
-
SashaPoznavatel09.06.2023 22:08
-
BlaSta25.05.2023 21:02
-
ruslanlezgi14.03.2020 11:08
-
VovaMel201707.02.2020 18:05
-
Сасаев07.05.2023 23:55
-
gfyfhh14.02.2021 00:23
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.