unit SpaceLib;
interface
uses System;
const
ch = ' ';
function MyTrimLeft(s: string): string;
function MyTrimRight(s: string): string;
function MyTrim(s: string): string;
function MySingleSpaces(s: string): string;
function MyNoSpaces(s: string): string;
implementation
function MyTrimLeft(s: string): string;
begin
MyTrimLeft := Regex.Replace(s, '^[' + ch + ']+', '');
end;
function MyTrimRight(s: string): string;
begin
MyTrimRight := Regex.Replace(s, '[' + ch + ']+$', '');
end;
function MyTrim(s: string): string;
begin
s := Regex.Replace(s, '^[' + ch + ']+', '');
MyTrim := Regex.Replace(s, '[' + ch + ']+$', '');
end;
function MySingleSpaces(s: string): string;
begin
s := MyTrim(s);
MySingleSpaces := Regex.Replace(s, '[' + ch + ']+', ' ');
end;
function MyNoSpaces(s: string): string;
begin
MyNoSpaces := s.Replace(ch, '');
end;
end.
//PascalABC.NET версия 3.4.0.1677 от 17.06.18
//Если программа не запускается, то обновите версию
uses SpaceLib;
begin
var s := ' 123 123 23 4343 434 43 34 ';
WritelnFormat('"{0}"', MyTrimLeft(s));
WritelnFormat('"{0}"', MyTrimRight(s));
WritelnFormat('"{0}"', MyTrim(s));
WritelnFormat('"{0}"', MySingleSpaces(s));
WritelnFormat('"{0}"', MyNoSpaces(s));
end.
var a,b,c: integer;
begin
write('Введите пятизначное число:');
readln(c);
if (c >= 10000) and (c <= 99999) then
begin
a:=c;
while a>0 do
begin
b:=b*10+a mod 10;
a:=a div 10
end;
writeln ('Вы ввели число: ',c);
write ('Переворот числа: ',b)
end
else
begin
writeln('Число не пятизначное');
writeln ('Вы ввели число: ',c)
end
end.
Или всё через if:
var a,b,c: integer;
begin
write('Введите пятизначное число:');
readln(c);
if (c >= 10000) and (c <= 99999) then
begin
a:=c;
if a>0 then
begin
b:=b*10+a mod 10;
a:=a div 10
end;
if a>0 then
begin
b:=b*10+a mod 10;
a:=a div 10
end;
if a>0 then
begin
b:=b*10+a mod 10;
a:=a div 10
end;
if a>0 then
begin
b:=b*10+a mod 10;
a:=a div 10
end;
if a>0 then
begin
b:=b*10+a mod 10;
a:=a div 10
end;
writeln ('Вы ввели число: ',c);
write ('Переворот числа: ',b)
end
else
begin
writeln('Число не пятизначное');
writeln ('Вы ввели число: ',c)
end
end.
Поделитесь своими знаниями, ответьте на вопрос:
1) Сколько единиц в двоичной записи числа 4^2018+8^305-2^130-120? 2) Значение арифметического выражения 9^22+3^66-12 записали в системе счисления с основанием 3. Сколько цифр "2" содержится в этой записи?
1) 909 единиц (всего 4037 разрядов, полный вид двоичного числа- смотри скрин внизу)
2) 42 цифры "2" (всего 67 разрядов, полный вид троичного числа= 1000000000000000000000022222222222222222222222222222222222222222120, смотри скрин внизу)
Примечание: вообще, это решается приведением всех степеней к одному основанию (2 или 3 -смотри основание системы счисления, в которой нужно по заданию записать число), затем представить, как будет выглядеть каждое из этих чисел в данной системе счисления, затем сложение, далее вычитание чисел (оба раза- от большего (по модулю) числа к меньшему) -тут не нужно полностью писать число, достаточно понять, сколько появится единиц/двоек между таким то и таким то разрядом, если вычесть одно из другого (тут нужно понимать, как происходит сложение/вычитание в той или иной системе счисления). Последнее слагаемое можно тоже разложить на сумму/разность нескольких степеней (например, 120 = 128 - 8 = 2^7 - 2^3 или 12 = 9 + 3 = 3^2 + 3^1 ) -и тоже представить/записать его в нужной системе счисления, после чего вычесть из предыдущего результата.