Начало отсчета лет - 1984 год. Надо написать программу (pascalABC). Вводите год, нужный вам, отнимаете от него 1984 и находите остаток от деления на 12. Последовательность животных в 12-летнем цикле - крыса, корова, тигр, заяц, дракон, змея, лошадь, овца, обезьяна, курица, собака, свинья. То есть если при делении на 12 остаток равен 0, значит введенный год - год крысы, если 1 - год коровы и т.д.
Программа:
var a,b,c:longint;
begin
write('Введите год: ');
readln(a);
c:=a-1984;
b:=c mod 12;
case b of
0:writeln(a,' - год крысы');
1:writeln(a,' - год коровы');
2:writeln(a,' - год тигра');
3:writeln(a,' - год зайца');
4:writeln(a,' - год дракона');
5:writeln(a,' - год змеи');
6:writeln(a,' - год лошади');
7:writeln(a,' - год овцы');
8:writeln(a,' - год обезьяны');
9:writeln(a,' - год курицы');
10:writeln(a,' - год собаки');
11:writeln(a,' - год свиньи');
end;
end.
//PacalABC.NET 3.4.2
//Используется формула аналогичная формуле Бине для чисел
//Фибоначчи
const
index = power(33, 0.5);
a1 = power((19 + 3 * index), 1 / 3);
a2 = power((19 - 3 * index), 1 / 3);
b = power((586 + 102 * index), 1 / 3);
var
n, i: smallint;
x: uint64;
function tribonacthi(n: smallint): biginteger;
begin
if (n = 1) or (n = 2) then result := 0
else
result := RoundBigInteger(3 * b * ((power((1 / 3 * (a1 + a2 + 1)), n - 1)) / (power(b, 2) - 2 * b + 4)));
end;
begin
try
n := readinteger('Введите n:');
x := readinteger('Введите x:');
except
on system.formatexception do
begin
writeln('Неверный формат ввода');
exit;
end;
end;
writeln('1)', tribonacthi(n), ' ');
write('2)');
i := 1;
while (tribonacthi(i) < x) do
begin
write(tribonacthi(i), ' ');
i += 1;
end;
end.