Фибоначчи
Числа Фибоначчи - это целые числа, которые увеличиваются в некоторой последовательности. Каждое третье число в этой последовательности является суммой двух предыдущих чисел.
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144…
Посмотрите на картинку справа и попытайтесь понять последовательность: у вас есть число N. найдите N-е число Фибоначчи.
2N = X2*256 + Y2*16 + Z2
X1 + Y1 + Z1 = X2 + Y2 + Z2
Во-первых, X1 < 8, иначе число 2N в 16-ной записи станет 4-значным.
Можно написать такую программу поиска этих чисел
Начало
k = 0 ' Это счетчик чисел, которые мы ищем
Цикл по X1 от 1 до 7
Цикл по Y1 от 0 до 15
Цикл по Z1 от 0 до 15
N = X1*256 + Y1*16 + Z1
M = 2*N
X2 = Int (M / 256)
Y2 = Int ((M - X2*256) / 16)
Z2 = M Mod 16
Если (X1+Y1+Z1 = X2+Y2+Z2) And ((X1 = 2) Or (Y1 = 2) Or (Z1 = 2), То
k = k + 1
Конец Если
Конец цикла по Z1
Конец цикла по Y1
Конец цикла по X1
Вывод k
Конец
День,Месяц:byte;
Begin
Write('№ дня = ');ReadLn(День);
Var C:=365-День;
Write('№ месяца = ');ReadLn(Месяц);
Case Месяц of
2:C:=C-31;
3:C:=C-59;
4:C:=C-90;
5:C:=C-120;
6:C:=C-151;
7:C:=C-181;
8:C:=C-212;
9:C:=C-243;
10:C:=C-273;
11:C:=C-304;
12:C:=C-334
End;
if (C mod 100>10)and(C mod 100<20) then Write('До нового года осталось ',C,' дней')
else
Case C mod 10 of
1:Write('До нового года остался ',C,' день');
2..4:Write('До нового года осталось ',C,' дня');
0,5..9:Write('До нового года осталось ',C,' дней')
End
End.