Контроль пройден (или – контроль не пройден)
Размер памяти, которую использует Ваша программа, не должен зависеть от длины переданной последовательности чисел. Перед текстом программы кратко опишите используемый вами алгоритм решения задачи.
Пример входных данных:
Пример выходных данных для приведенного выше примера входных данных:
Получено 6 чисел
Полученное контрольное значение: 3600
Вычисленное контрольное значение: 3600
Контроль пройден.
38) По каналу связи передается последовательность положительных целых чисел X1, X2, …; все числа не превышают 1000, их количество заранее неизвестно. Каждое число передается в виде отдельной текстовой строки, содержащей десятичную запись числа. Признаком конца передаваемой последовательности является число 0.
Участок последовательности от элемента XT до элемента XT+N называется подъемом, если на этом участке каждое следующее число больше предыдущего. Высотой подъема называется разность
XT+N - XT.
Напишите эффективную программу, которая вычисляет наибольшую высоту среди всех подъемов последовательности. Если в последовательности нет ни одного подъема, программа выдает 0. Программа должна напечатать отчет по следующей форме:
Получено ... чисел
Наибольшая высота подъема: ...
Размер памяти, которую использует Ваша программа, не должен зависеть от длины переданной последовательности чисел.
39) Взаимным индексом совпадения строк[3] S1 и S2, которые включают только латинские буквы, называется величина
,
где n1 и n2 – длины строк S1 и S2, а – число вхождений буквы, имеющей номер k в латинском алфавите, в строку Si. Например, индекс совпадений строк «Moloko» и «mAma» равен
(одна общая буква «m» встречается 1 раз в первой строке и 2 раза во второй строке). Напишите эффективную программу, которая вводит с клавиатуры две строки, содержащие (кроме латинских букв) знаки препинания и пробелы, и вычисляет взаимный индекс совпадения этих строк.
40) Вам необходимо написать программу распознавания чисел, записанных прописью. Сначала на вход программе подается обучающий блок, состоящий из 27 строк. Первые 9 строк содержат слова «один», «два», ..., «девять», следующие 9 строк - слова «одиннадцать», «двенадцать», ... «девятнадцать», следующие 9 строк - слова «десять», «двадцать», ..., «девяносто». Все слова записаны маленькими русскими буквами без лишних пробелов в начале и в конце строки.
Затем на вход программе подается значение N - количество записей, которые необходимо обработать. Следующие N строк содержат записанные словами числа. Каждое число записано по-русски, маленькими буквами, без ошибок. Если число состоит из нескольких слов, между словами находится ровно один пробел, лишних пробелов в начале и в конце строк нет.
Напишите эффективную программу, которая определит сумму тех входных чисел, которые находятся в интервале от 1 до 99.
Размер памяти, которую использует Ваша программа, не должен зависеть от длины исходного списка.
Перед текстом программы кратко опишите используемый вами алгоритм решения задачи.
Пример входных данных (обучающий блок показан в примере с сокращениями):
Один
Два
…
Девяносто
Двадцать восемь
Два миллиона
Четырнадцать
Сто двадцать три