М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
МВ080706
МВ080706
11.05.2023 03:12 •  Информатика

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

👇
Ответ:
Jicker
Jicker
11.05.2023
Var s : String;

Function isPali(ss : String) : Boolean;
Begin
  If Length(ss)>0 then isPali:=(ss[1]=ss[Length(ss)]) and isPali(Copy(ss,2,Length(ss)-2))
  else isPali:=True;
end;

Function NtoPali(ss : String) : Integer;
Begin
  If isPali(ss) then NtoPali:=0 else NtoPali:=1+NtoPali(Copy(ss,2,Length(ss)-1));
end;

Begin
  s:='abcdc';  // Readln(s);
  Writeln(NtoPali(s));
end.
4,7(16 оценок)
Открыть все ответы
Ответ:
DenchikKing
DenchikKing
11.05.2023
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!

begin
  var a:=ReadReal('Введите число:');
  var k:=ReadInteger('Введите величину сдвига десятичной точки:');
  a:=a*10**k;
  a.Println
end.

Примеры
Введите число: 12345.09876
Введите величину сдвига десятичной точки: -3
12.34509876

Введите число: 345.09876
Введите величину сдвига десятичной точки: 4
3450987.6

Введите число: 12345.09876
Введите величину сдвига десятичной точки: 8
1234509876000

Введите число: 12345.09876
Введите величину сдвига десятичной точки: 15
1.234509876E+19

Введите число: 1.23456789e-10
Введите величину сдвига десятичной точки: -25
1.23456789E-35
4,8(12 оценок)
Ответ:
gavrilovanasta
gavrilovanasta
11.05.2023
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!

№1

function IsGood(n:integer):boolean;
begin
  n:=Abs(n);
  var s:=0;
  while n>0 do begin
    s+=n mod 10;
    n:=n div 10
    end;
  Result:=s=10
end;

begin
  var k:=ReadSeqIntegerWhile(t->t<>0).Where(t->IsGood(t)).Count;
  Writeln(k,' чисел с суммой цифр, равной 10')
end.

Пример
-5234 20043 52340 10531 -64 31502 0
2 чисел с суммой цифр, равной 10

№2

begin
  var n:=ReadInteger('Введите число:');
  if n<=1 then Writeln(n,'!=',1)
  else Writeln(n,'!=',1.To(n).Aggregate(BigInteger(1),(i,j)->i*j))
end.

Примеры
Введите число: 5
5!=120

Введите число: 20
20!=2432902008176640000

Введите число: 100
100!=93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

№3

begin
  if ReadInteger('Введите число:').ToString.GroupBy(t->t).
      Select(t->(t.Key,t.Count)).Any(t->t[1]>1)
  then Writeln('Число содержит по крайней мере две одинаковые цифры')
  else Writeln('Введенное число не содержит одинаковых цифр')
end.

Примеры
Введите число: 12345670
Введенное число не содержит одинаковых цифр

Введите число: 1320624
Число содержит по крайней мере две одинаковые цифры
4,6(38 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ