Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Абрамов С.А., Гнездилова Г.Г., Капустина Е.Н., Селюн М.И. Задачи по программированию [pdf]

.pdf
Скачиваний:
736
Добавлен:
02.05.2014
Размер:
6.04 Mб
Скачать

546. Даны натуральные числа n, m, символы s1, ...., sn (m < n). Получить последовательность символов:

а) sm + 1, sm + 2, ..., sn, s1, ..., sm; б) sm + 1, sm + 2, ..., sn, sm, ..., s1; в) sn, sn – 1, ..., sm + 1, s1, ..., sm .

547.Даны натуральное число n, символы s1, ...., sn. Известно, что

впоследовательность s1, ...., sn входит по крайней мере один пробел. Пусть m таково, что sm – это первый по порядку пробел, входящий в s1, ...., sn (m заранее неизвестно). Выполнить преобразования а), б), в), сформулированные в предыдущей задаче.

548.Даны натуральное число n, символы s1, ...., sn. Получить те символы, принадлежащие последовательности s1, ...., sn, которые входят в эту последовательность по одному разу.

549.Даны натуральное число n, символы s1, ...., sn. Получить последовательность символов, содержащую только последние вхождения каждого символа с сохранением взаимного порядка этих вхождений.

550.Даны натуральные числа k, m, l, символы

s1, ...., sk, t1, ...., tm, u1, ...., ul. Получить по одному разу те символы, которые входят одновременно во все три последовательности.

551. Даны натуральное число n, символы s1, ...., sn. Будем рассматривать слова, образованные входящими в последовательность s1, ...., sn символами (см. задачу 269). Ниже описываются преобразования, каждое из которых следует произвести при выполнении указанного условия. Затем последовательность вне зависимости от того, подвергалась она или нет преобразованию, должна быть отредактирована следующим образом. Должны быть

удалены группы пробелов, которыми начинается и заканчивается последовательность, а каждая внутренняя группа пробелов должна быть заменена одним пробелом.

Преобразования:

а) если общее количество слов больше единицы и нечетно, то удалить первое слово;

б) если последнее слово начинается буквой а и общее число слов больше единицы, то переставить последнее слово в начало последовательности, отделив его пробелом от s1;

в) если первое и последние слова совпадают и общее число слов больше единицы, то удалить первое и последнее слова, а оставшиеся символы переставить в обратном порядке.

552. Даны символы s1, s2, .... Известно, что символ si отличен от точки и что среди s2, s3, .... имеется хотя бы одна точка. Пусть s1, ...., sn

– символы, предшествующие первой точке (n заранее неизвестно). Получить:

а) последовательность sn, sn-1, ..., s1;

б) последовательность s1, s3, ..., sn, если n – нечетное, и последовательность s2, s4, ..., sn, если n – четное.

553. Если требуется хранение последовательности, число членов которой ограничено сверху некоторым известным числом N, то можно использовать для хранения последовательности массив с N элементами, занимая, таким образом, память вычислительной машины с некоторым запасом. Это позволяет обойтись без списков.

а) Вернуться к задаче 531, считая, что n

1000.

б) Вернуться к задаче 532, считая, что n

1500.

в) Вернуться к задаче 550, считая, что k

1000, m ≤ 1000,

l ≤ 100.

г) Вернуться к задаче 550, считая, что k + m + l ≤ 2000. Следует иметь в виду, что если используется несколько таких

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

ГЛАВА ΙΙ

ЗАДАЧИ ПО ТЕМАМ

§15. Целые числа.

554.Дано натуральное число n. Получить все пифагоровы тройки натуральных чисел, каждое из которых не превосходит n, т. е.

все такие тройки натуральных чисел a, b, c, что a2 + b2 = c2 (a b c n).

555. Треугольником Паскаля называется числовой треугольник

1

11

 

1

2

1

 

 

1

3

3

1

1

4

6

4

1

. . . . . . . . . . . . . . . . .

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

Дано натуральное n. Получить первые n строк треугольника Паскаля.

556. Для чисел Фибоначчи u0, u1, .... (см. задачу 144) справедлива формула Бине

 

 

1

æ

1+

5

ök

 

uk

=

 

ç

 

 

÷

5

ç

 

2

÷

 

 

è

 

ø

 

1 æç 1

5 çè

5

ök

 

 

÷

, k = 0, 1, ....

2

÷

ø

 

Так как

15

< 1, то для больших

 

k выполнено приближенное

 

2

 

 

 

 

 

 

равенство

 

 

 

 

 

 

 

 

 

 

1

 

1+

5

k

 

 

 

æ

ö

 

 

uk

 

ç

 

 

÷

 

 

5

ç

2

 

÷ .

 

 

 

è

 

ø

 

1

æ

1+

5

ök

Вычислить и округлить до целого все числа

 

ç

 

 

÷

5

ç

 

2

÷

 

è

 

ø

(k = 0, 1, ..., 15). Вычислить u0 , u1 , ..., u15 по формулам

u0 = 0; u1 = 1; uk = uk 1 + uk 2 (k = 2, 3, …) и сравнить результаты. 557. Дано натуральное число n (n ≥ 2). Найти все меньшие n

простые числа, используя решето Эратосфена. Решетом Эратосфена называют следующий способ. Выпишем подряд все целые числа от 2 до n. Первое простое число 2. Подчеркнем его, а все большие числа, кратные 2, зачеркнем. Первое из оставшихся чисел 3. Подчеркнём, его как простое, а все большие числа, кратные 3, зачеркнем. Первое число из оставшихся теперь 5, так как 4 уже зачеркнуто. Подчеркнем его как простое, а все большие числа, кратные 5, зачеркнем и т. д.:

3,4,5,6,7,8,9,10,

558.Дано натуральное число n. С помощью решета Эратосфена (см. предыдущую задачу) найти четверки меньших n простых чисел, принадлежащих одному десятку (например, 11, 13, 17, 19).

559.Дано натуральное число n. Найти все меньшие n числа Мерсена. (Простое число называется числом Мерсена, если оно может быть представлено в виде 2p – 1, где р – тоже простое число.)

560.Два натуральных числа называют дружественными, если каждое из них равно сумме всех делителей другого, кроме самого этого числа. Найти все пары дружественных чисел, лежащих в диапазоне от 200 до 300.

561.Дано натуральное число n. Среди чисел 1, ..., n найти все такие, запись которых совпадает с последними цифрами записи их квадрата (как, например, 62 = 36, 252 = 625 и т. д.).

562.Натуральное число из n цифр является числом Армстронга, если сумма его цифр, возведенных в n-ю степень, равна самому числу

(как, например, 153 = 13 + 53 + 33). Получить все числа Армстронга, состоящие из двух, трех и четырех цифр.

563. Назовем натуральное число палиндромом, если его запись читается одинаково с начала и с конца (как, например, 4884, 393, 1).

а) Найти все меньшие 100 натуральные числа, которые при возведении в квадрат дают палиндром.

б) Найти все меньшие 100 числа – палиндромы, которые при возведении в квадрат также дают палиндромы.

564. Рассмотрим некоторое натуральное число n. Если это не палиндром, то изменим порядок его цифр на обратный и сложим исходное число с получившимся. Если сумма не палиндром, то над ней повторяется то же действие и т. д., пока не получится палиндром. До настоящего времени неизвестно, завершается ли этот процесс для любого натурального n.