• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите решить задачу

  • Автор темы Автор темы WWWaNNN
  • Дата начала Дата начала

WWWaNNN

Новые
Регистрация
20 Дек 2009
Сообщения
35
Реакции
0
Баллы
0
Помогите решить задачу

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

procedure TForm1.Button1Click(Sender: TObject);
var s:string;
i,b,k,n:integer;
a:array[1..100] of char;
buf:array[1..100] of char;
begin
k:=0;
s:=edit1.Text;
n:=length(s);
if n>3 then
begin
for i:=1 to n do
a:=s;
for i:=1 to (n div 2) do
begin
if a<>a[n-k] then
begin
for b:=1 to n do
buf:=a[b+i-1];
a:=a[n-k];
for b:=1 to n do
a[b+i]:=buf;
k:=k+1; n:=n+1
end else k:=k+1;
end;
end;
edit1.Text:='';
for i:=0 to n*2 do
edit1.Text:=edit1.Text+a;
end;
посмотрите и хотя бы скажите правильно я начал и если нет скажите хоть способ решения:)
 
Вы сначала должны убедиться, не является ли введенное слово палиндромом, а уж потом начинать дописывать буквы.
И еще, почему вы исключаете слова из 3-х букв, они же тоже могут быть палиндромами, к примеру, слово "кок".
 
ну...слово должно быть больше 3-х символов по условию задачи(задача с олимпиады) и слово проверить легко палиндром это или нет.Меня интересует именно способ образования палиндрома из обычного слова:)
 
ну...слово должно быть больше 3-х символов по условию задачи(задача с олимпиады) и слово проверить легко палиндром это или нет.Меня интересует именно способ образования палиндрома из обычного слова:)

Это-то не трудно, а вот как проверить полученный палиндром на осмысленность? Или это не требуется?
 
всмысле осмысленность,если слово существующее,то нет,осмысленность здесь значения не играет,просто надо из строки символов сделать палиндром,строку символов,которая ситается и справа налево и слева направо одинакого:)
 
Назад
Сверху