Программы написаны в среде программирования PascalABC.NET
Задача 1. Дано трехзначное число. Напишите программу определения, является ли оно палиндромом ("перевертышем"), т. е. числом, десятичная запись которого читается одинаково слева направо и справа налево.
Решение.
var
a, b,c:integer;
begin
readln(a);
b:=a mod 10; //получаем последнюю цифру трёхзначного числа
c:=a div 100; //получаем первую цифру трёхзначного числа
if b=c then write('Является палиндромом')
else write('Не является палиндромом');
end.
Задача 2. Дана строка символов до точки (<=255). Определить, является ли она записью целого десятичного числа, кратного трём. Строка символов — это строка, которая заканчивается точкой. Если строка является записью целого десятичного числа, кратного трём, то выводим 1. Если не так, то 0.
Решение:
var
a:string;
b, c,d:integer;
begin
readln(a);
d:=0;c:=0;
for b:=1 to length(a) do
begin
if (a[b]='9') then c:=c+9 else d:=d+1;
if (a[b]='8') then c:=c+8 else d:=d+1;
if (a[b]='7') then c:=c+7 else d:=d+1;
if (a[b]='6') then c:=c+6 else d:=d+1;
if (a[b]='5') then c:=c+5 else d:=d+1;
if (a[b]='4') then c:=c+4 else d:=d+1; //считаем сумму цифр данного числа
if (a[b]='3') then c:=c+3 else d:=d+1;
if (a[b]='2') then c:=c+2 else d:=d+1;
if (a[b]='1') then c:=c+1 else d:=d+1;
if (a[b]='0') then c:=c+0 else d:=d+1;
end;
if (c mod 3=0) //число кратно трём если сумма его цифр кратна трём
and (d=9*(length(a))+1) //проверяем на наличие посторонних знаков в данной стоке, расчёт ведётся с учётом того что на ввод будет дана строка, которая заканчивается точкой например: we12tWET. или 3333.
then write('1') else write('0');
end.
Задача 3. Дана строка символов (<=255). Удалить из неё все знаки препинания (. , ? : ; ! - )
Решение:
var
a:string;
b:integer;
begin
readln(a);
for b:=length(a) downto 1 do
if (a[b]='.') or (a[b]=',') or (a[b]=';') or (a[b]=':') or (a[b]='!') or (a[b]='?') or (a[b]='-') //проверка каждого символа на принадлежность к знакам препинания.
then begin
delete(a, b,1); //удаление символа
end;
write(a);
end.
Задача 4. Напишите программу подсчитывающего количество символов использованных в произвольном вами выбранном тексте.
Решение:
var
a:string;
b:integer;
begin;
readln(a);
b:=length(a);
writeln(b);
end.
Задача 5. Лесенкой называется набор кубиков, в котором каждый более верхний слой содержит кубиков меньше, чем предыдущий.
□
□□□□
□□□□□
□□□□□□□□
Напишите программу, который подсчитывает число лесенок, которое можно построить из N кубиков
Решение:
var
N, c: longint;
procedure d(a, b:longint); //введение алгоритма по которому будет строится "дерево" всех возможных решений.
var
i:longint;
begin
if a=0 then c:=c+1
else
begin
for i:=1 to a do //
if i<b then //
d(a-i, i) //получение всех возможных комбинаций при которых каждый верхний ряд меньше нижнего
else //
break; //
end;
end;
begin
read(N);
d(N, N+1);
writeln(c);
end.
Основные порталы (построено редакторами)
