Составить программу в PascalABC
День программиста традиционно отмечается в Беларуси в 256-й день года. Число
256 (28
) выбрано потому, что оно представляет количество различных целых чисел, которые
можно выразить с помощью одного восьмиразрядного байта. А день веб-программиста
ежегодно празднуют 4 апреля. Эта дата также выбрана не случайно: цифры 4.04 очень
напоминают по своему написанию ошибку 404 («Страница не найдена»), имеющую прямое
отношение к работе веб-мастеров. В нынешнем году, кстати, день веб-программиста
выпадает на вторник, а день программиста — на среду.
В ответе укажите, сколько раз за ближайшие 100 лет оба праздника выпадут на один и
тот же день недели.
Ответы
Ответ дал:
0
const
names:array[1..7] of string=('пн','вт','ср','чт','пт','сб','вс');
var k,i,n0,np,nw,year,dw:integer;
begin
k:=0;
n0:=6; //01.01.2000 - суббота
for i:=2000 to 2100 do
begin
if (i mod 400=0)or(i mod 4=0)and(i mod 100<>0)
then begin year:=366; dw:=31+29+31+3; end
else begin year:=365; dw:=31+28+31+3; end;
np:=(255+n0-1) mod 7+1;
nw:=(dw+n0-1) mod 7+1;
n0:=(year+n0-1) mod 7+1;
if np=nw then
begin writeln(i,' - ',names[np]); k:=k+1; end;
end;
writeln('k = ',k);
end.
Результат:
2000 - вт
2004 - вс
2008 - пт
...
2092 - пт
2096 - ср
k = 25
PS. Високосные годы, однако )
names:array[1..7] of string=('пн','вт','ср','чт','пт','сб','вс');
var k,i,n0,np,nw,year,dw:integer;
begin
k:=0;
n0:=6; //01.01.2000 - суббота
for i:=2000 to 2100 do
begin
if (i mod 400=0)or(i mod 4=0)and(i mod 100<>0)
then begin year:=366; dw:=31+29+31+3; end
else begin year:=365; dw:=31+28+31+3; end;
np:=(255+n0-1) mod 7+1;
nw:=(dw+n0-1) mod 7+1;
n0:=(year+n0-1) mod 7+1;
if np=nw then
begin writeln(i,' - ',names[np]); k:=k+1; end;
end;
writeln('k = ',k);
end.
Результат:
2000 - вт
2004 - вс
2008 - пт
...
2092 - пт
2096 - ср
k = 25
PS. Високосные годы, однако )
Вас заинтересует
1 год назад
1 год назад
5 лет назад
5 лет назад
9 лет назад
9 лет назад