Даны строки S1 и S2. Удалить из строки S1 первую подстроку S2, если S2 не содержится в S1, вывести S1 без изменений
Ответы на вопрос:
PascalABC.NET
beginvar (s1,s2) := ReadString2; if s1.Contains(s2) then s1 := s1.Remove(s1.IndexOf(s2),s2.Count); s1.Print end.Пример работы:
ответ:
код:
1.program happyticket;
2.var
3.n, a: longint;
4.left, right, digits, i: byte;
5.begin
6.readln(n);
7.a : = n;
8.digits : = 0;
9.while a < > 0 do begin
10.a : = a div 10;
11.inc(digits)
12.end;
13.left : = 0;
14.right : = 0;
15.for i : = 1 to digits div 2 do begin
16.right : = right + n mod 10;
17.n : = n div 10
18.end;
19.if odd(digits) then n : = n div 10;
20.for i : = 1 to digits div 2 do begin
21.left: = left + n mod 10;
22.n : = n div 10
23.end;
24.writeln(left = right)
25.end.
представим, как должен работать алгоритм при вводе числа 14350:
1) считаем длину числа, она равна 5 (строки 11-14);
2) в цикле из 5 div 2 = 2 повторений прибавляем к right крайние справа цифры 0 и 5, после чего отбрасываем их и имеем в n 143 (строки 17-20);
3) так как odd(digits) = odd(5) = true, отбрасываем 3, после чего имеем в n 14 (строка 21);
4) в цикле из 5 div 2 = 2 повторений прибавляем к left оставшиеся цифры 1 и 4, после чего n становится равно 0, что, впрочем, нас уже не интересует (строки 22-25);
5) выводим на экран значение выражения left = right – ответ положительный (строка 26)
объяснение:
для ее решения необходимо знать длину числа (то есть его разрядность), вследствие чего нам необходимо скопировать переменную n в некоторую другую (например, a), чтобы на основе a посчитать количество десятичных разрядов n и сохранить его в некоторой переменной digits. сделать это можно так:
a : = n;
digits : = 0;
while a < > 0 do begin
a : = a div 10;
inc(digits)
end;
Популярно: Информатика
-
AkaboS12303.03.2022 10:35
-
Yanaaa1324.06.2022 03:46
-
кит21725.01.2020 10:11
-
fa7b3ar10.12.2022 17:41
-
77777201877777712.08.2022 13:03
-
vaporen02.12.2021 04:28
-
илья0609200102.11.2021 07:23
-
1trippy116.10.2021 21:41
-
TN0212200217.11.2021 05:07
-
sfinks9813.06.2021 14:16