CFA LogoCFA Logo Computer
Новости Статьи Магазин Драйвера Контакты
Новости
RSS канал новостей
В конце марта компания ASRock анонсировала фирменную линейку графических ускорителей Phantom Gaming. ...
Компания Huawei продолжает заниматься расширением фирменной линейки смартфонов Y Series. Очередное ...
Компания Antec в своем очередном пресс-релизе анонсировала поставки фирменной серии блоков питания ...
Компания Thermalright отчиталась о готовности нового высокопроизводительного процессорного кулера ...
Компания Biostar сообщает в официальном пресс-релизе о готовности флагманской материнской платы ...
Самое интересное
Программаторы 25 SPI FLASH Адаптеры Optibay HDD Caddy Драйвера nVidia GeForce Драйвера AMD Radeon HD Игры на DVD Сравнение видеокарт Сравнение процессоров

АРХИВ СТАТЕЙ ЖУРНАЛА «МОЙ КОМПЬЮТЕР» ЗА 2002 ГОД

Как я стал палиндромом

Зарема СЕЙДАМЕТОВА vzts@home.cris.net

Не все юные программисты любят математику; есть и такие, у которых нелады с грамотностью. Но фокусы и приключения со словами и числами, думаю, всякому интересны.

Наступил 2002 год. И, как недавно заметил Альфред Посаментиер (Madam, I’m 2002 –– a Numerically Beautiful Year —http://www.nytimes.com/2002/01/02/opinion/02POSA.html), профессор математики и декан педагогической школы при колледже нью-йоркского университета: «Теперь можно констатировать, что мы последнее в наступившем тысячелетии поколение, прожившее сразу в двух палиндромических годах –– 1991 и 2002».

Палиндром (от греческого palindromeo –– бегу назад) –– это слово, фраза или стих, одинаково читающиеся слева направо и справа налево. В математике палиндромы (перевертыши) –– это числа, которые читаются одинаково в обоих направлениях. В русском языке хорошо известны такие перевертыши:

Кармен не мрак.

А роза упала на лапу Азора.

Аргентина манит негра.

На в лоб, болван.

Чин зван мечем навзничь (В. Хлебников).

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

Madam, I’m Adam.

Nurses run.

Rotator.

Reviver.

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

Пример 1

3724 + 4273 = 7997. Ура! :-)

Пример 2

865 + 658 = 1433. Не палиндромическое число, продолжим процесс сложения .

1433 + 3341 = 4774. Ура! :-)

Пример 3

9238 + 8329 = 17567. Похоже, придется продолжить. 

17567 + 76571 = 94138. Сложим еще раз. 

94138 + 83149 = 177287. Дальше. 

177287 + 782771 = 960058. Увы, ничего не получилось. 

960058 + 850069 = 1810127. 

1810127 + 7210181 = 9020308. Попробуем еще разок. 

9020308 + 8030209 = 17050517. Кажется, мое терпение вот-вот лопнет. 

17050517 + 71505071 = 88555588. А вот теперь действительно ура. :-)

Вот ведь она какая бывает, математика. Думаю, у тех, кто доселе был к ней равнодушен, этот фокус засветил в глазах огонек.

А теперь попробуйте свои силы в решении следующих проблем:

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

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

Ниже приведено решение задачи о поиске палиндромов в текстовом файле, выполненное в среде программирования Turbo Pascal (задачи и их решения на Turbo Pascal см. на http://sapisoft.h1.ru/pascal.html).

Поиск палиндромов

Задача:

В тексте слова отделяются друг от друга пробелами. В конце предложения стоит точка. Найти все слова-перевертыши.

Необходимые условия:

Программа должна читать исходные данные из файла input.txt, содержащего исследуемый текст. Файл output.txt должен содержать список всех слов-палиндромов, разделенных пробелами.

Решение:

Программа читает текст из файла input.txt, удаляет знаки пунктуации, затем переводит все буквы в нижний регистр и с помощью функции Perev логического типа проверяет, является ли каждое из слов исследуемого текста палиндромом:

Приведем еще несколько задач для реализации в Turbo Pascal или любой другой среде программирования.

1. Найти самый длинный палиндром в тексте. Если таких слов несколько, взять первое попавшееся. Интерфейс прежний — программа должна читать текст из файла input.txt и выводить самое длинное слово в файл output.txt.

2. Дан одномерный массив натуральных чисел a[1], Таблица 1a[2],...,a[1000]. Определить максимальное количество палиндромов.

3. Из двух натуральных чисел составить наибольший возможный палиндром, максимально приближенный к первоначальной последовательности цифр. Опять же, исходные числа читаются из файла input.txt, полученное число или сообщения о невозможности построения такого числа выводятся в файл output.txt.

Примеры входного и выходного файлов приведены в таблице.

Рекомендуем ещё прочитать:






Данную страницу никто не комментировал. Вы можете стать первым.

Ваше имя:
Ваша почта:

RSS
Комментарий:
Введите символы или вычислите пример: *
captcha
Обновить





Хостинг на серверах в Украине, США и Германии. © sector.biz.ua 2006-2015 design by Vadim Popov