Олімпіадні задачі попередніх років з розв'язками.
Дано натуральне число N (1000 < =N<=9999). Визначити, чи є числo поліндромом, тобто таким числом, яке зліва направо і справа наліво читається однаково (всі чотири цифри враховуються; наприклад, 0110).
var n,n1,n2,n3,n4,r:integer;
begin
write('Введіть будь-яке чотирьохзначне число: ');
readln(n);
n1:=n div 1000;
n2:=(n div 100) mod 10;
n3:=(n div 10) mod 10;
n4:= n mod 10;
r:=n4*1000+n3*100+n2*10+n1;
if r=n then writeln ('Введене число ',n,' являється поліндромом.')
else writeln ('Введене число ',n,' не є поліндромом.')
end.
В першому півріччі 2007-08 навчального року
заняття проходять з 1 по 8 та з 10 по 17 тижні (дев’ятий тиждень – канікули). В
розкладі одного з класів п’ять днів на тиждень (від понеділка до п’ятниці)
відбувається по шість уроків щодня, всього 480 уроків за півріччя. Всі ці уроки
перенумеровані. Складіть програму, що визначає, на якому тижні та в який день
тижня відбувається урок з даним номером N.
const
wd:array[0..4] of string =
('Monday','Tuesday','Wednesday','Thursday','Friday');
var n,w,d:integer;
begin
readln(n);
{учитываем каникулы}
if n>240 then n:=n+29 else dec(n);
w:= n div 30
{пошук тижня}
d:= (n mod 30) div 6;{пошук
дня}
writeln('Week ',w+1,' ',wd[d]);
end.
Чи на одній лінії?
1 2 3
4 5 6
7 8 9
Мал.1
Квадрати для гри в
«Хрестики-нулики» занумеровані так, як подано на мал.1. Задано номери трьох
різних квадратів N1, N2, N3. Скласти програму, яка б перевіряла, чи знаходяться
ці квадрати на одній лінії, і якщо так, то визначала, чи ця лінія буде
діагоналлю, вертикаллю або горизонталлю (повідомлення – «NONLINE», «DIAGONAL»,
«VERTICAL» або «HORIZONTAL»).
1
|
2
|
3
|
4
|
5
|
6
|
7
|
8
|
9
|
var
n1,n2,n3,temp:integer;
begin
readln(n1,n2,n3);
{впорядковуємо
n1,n2,n3 за зростанням}
if n1>n2 then begin temp:=n1;n1:=n2;n2:=temp end;
if n1>n3 then begin
temp:=n1;n1:=n3;n3:=temp end;
if n2>n3 then begin
temp:=n2;n2:=n3;n3:=temp end;
{Послідовно відбираємо тип лінії}
if ((n2=n1+3) and (n3=n2+3))
then writeln('VERTICAL')
else if ((n2=n1+1) and (n3=n2+1) and (n3 mod
3 = 0))
then writeln('HORIZONTAL')
else if ((n2=5)and(n1+n3=10))
then writeln('DIAGONAL')
else writeln('NONLINE');
end.
Немає коментарів:
Дописати коментар