Статистика
Всего в нашей базе более 4 327 663 вопросов и 6 445 978 ответов!

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

5-9 класс

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

SKTEAM 09 февр. 2015 г., 16:23:07 (9 лет назад)
Рейтинг
+ 0 -
0 Жалоба
+ 0 -
Ketrin115
09 февр. 2015 г., 18:21:11 (9 лет назад)

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

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

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

Процедура Сформировать()
ТХТ=""+А(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)+Цепь.ПолучитьЗначение(ц));
   ТХТ=ТХТ+";"+След;
КонецЦикла;
Сообщить(ТХТ);
КонецПроцедуры

 

 

Ответить

Другие вопросы из категории

Пользователь работал с каталогомD:\ПРОГРАММЫ\ИГРЫ\КВЕСТЫ.Сначала он поднялся на один уровень вверх, затем спустил-ся в каталог СТРАТЕГИИ, после чего спусти

лся в каталогФАРАОН. Каков полный путь к каталогу, в котором оказал-ся пользователь?

Читайте также

Некоторый алгоритм из одной цепочки символов получает новую цепочку

следующим образом. Сначала записывается исходная цепочка символов, после нее
записывается исходная цепочка символов в обратном порядке, затем записывается
буква, следующая в русском алфавите за той буквой, которая в исходной цепочке
стояла на первом месте. Получившаяся цепочка является результатом работы
алгоритма. Например, если исходная цепочка символов была ЛЕС, то результатом
работы алгоритма будет цепочка ЛЕССЕЛМ. Дана цепочка символов ГО. Какая
цепочка символов получится, если к данной цепочке применить алгоритм дважды (то
есть к данной цепочке применить алгоритм, а затем к результату его работы еще раз
применить алгоритм)?

16. Некоторый алгоритм из одной цепочки символов получает новую

цепочку следующим образом. Сначала вычисляется длина исходной цепочки символов;
если она нечётна, то дублируется средний символ цепочки символов, а если чётна,
то в конец цепочки добавляется буква В.

В полученной цепочке символов каждая буква заменяется буквой, следующей за ней
в русском алфавите (А

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

записывается исходная цепочка символов в обратном порядке, затем записывается буква, следующая в русском алфавите за той буквой, которая в исходной цепочке стояла на последнем месте. Получившаяся цепочка является результатом работы алгоритма. Например, если исходная цепочка символов была ДОМ, то результатом работы алгоритма будет цепочка

Помогите, пожалуйста! Некоторый алгоритм из одной цепочки символов получает новую цепочку следующим образом. Сначала вычисляется длина исходной цепочки

символов; если она четна, то в конец цепочки символов добавляется символ О, а если нечетна, то в начало цепочки добавляется символ А. В полученной цепочке символов каждая буква заменяется буквой, предшествующей ей в русском алфавите(Б- на А, В-на Б и тд, а А на Я) Затем цепочка переписывается с конца к началу. Получившаяся таким образом цепочка является результатом работы алгоритма.
Дана цепочка символов ВПУ. Какая цепочка символов получится, если к данной цепочке применить описанный алгоритм дважды(т.е. применить алгоритм к данной цепочке, а затем к результату вновь применить алгоритм)? если можно объясните, пожалуйста:)

Некоторый алгоритм из одного числа получает новое число следующим образом. Исходное число записывается дважды(друг за другом), а в конец получившегося

числа дописывается столько нулей, сколько четных цифр в исходном числе. Получившееся число является результатом работы алгоритма. Например, исходное число было 325, то результатом работы алгоритма было число 3253250. Дано число 144. Сколько нулей будет содержаться в итоговом числе, если к исходному числу применить описанный алгоритм дважды(т.е. применить алгоритм к данному числу, а затем к данному результату вновь применить алгоритм. Необходимо написать подробное решение и объяснить задачу на пальцах.



Вы находитесь на странице вопроса "Некоторый алгоритм из одной цепочки десятичных цифр получает новую цепочку следующим образом: 1. первая цифра исходной цепочки не", категории "информатика". Данный вопрос относится к разделу "5-9" классов. Здесь вы сможете получить ответ, а также обсудить вопрос с посетителями сайта. Автоматический умный поиск поможет найти похожие вопросы в категории "информатика". Если ваш вопрос отличается или ответы не подходят, вы можете задать новый вопрос, воспользовавшись кнопкой в верхней части сайта.