Анатолий зашел в лифт на десятом этаже гигантского небоскреба, состоящего из 103 этажей. он не знал, что лифт сломался, и теперь в нем работают только две кнопки. кнопка вверх поднимает лифт на 7 этажей (или, если на 7 невозможно, то до самого верхнего возможного этажа), кнопка вниз опускает лифт на 5 этажей вниз (или, если на 5 невозможно, то на самый нижний этаж, например, если в доме 10 этажей, а лифт на четвертом, то после нажатия кнопки вниз он опустится на первый этаж). анатолий нажал кнопку вверх. затем, после того, как лифт остановился на этаже, нажал кнопку вниз. после того как лифт остановился на этаже, опять нажал кнопку вверх. и снова, после того, как лифт остановился на этаже, нажал кнопку вниз, и так далее… вышел из лифта он после того, как каждую кнопку нажал по 50 раз. на каком этаже он вышел из лифта? если бы каждая кнопка была нажата по два раза, то он оказался бы на 14ом этаже. комментарий. если в доме 15 этажей, а лифт на четвертом, то после нажатия кнопки вверх он поднимется на 11ый этаж, если после этого нажмут кнопку вверх еще раз, то он окажется на 15ом этаже. если же лифт исходно был на седьмом этаже этого дома и нажали кнопку вниз, то лифт опустится на второй этаж. если теперь снова нажать кнопку вниз, то лифт окажется на первом этаже.
1. 0..65534 -> 32767
2. 0..32766 -> 16383
3. 0..16382 -> 8191
4. 0..8190 -> 4095
5. 0..4094 -> 2047
6. 2048..4094 -> 3071
7. 2048..3070 -> 2559
8. 2560..3070 -> 2815
9. 2816..3070 -> 2943
10. 2944..3070 -> 3007
11. 2944..3006 -> 2975
12. 2976..3006 -> 2991
13. 2992..3006 -> 2999
14. 3000..3006 -> 3003
15. 3000..3002 -> 3001
Если лень перебирать вручную, можно воспользоваться программой
var k,l,r,x,f:integer;
begin
f := 3001;
l := 0;
r := 65534;
x := (l + r) div 2;
k := 1;
while (x <> f) and (l < r) do
begin
writeln(k,' ',l,' ',r,' ',x);
k := k + 1;
if f < x then r := x - 1
else l := x + 1;
x := (l + r) div 2
end;
writeln(k,' ',l,' ',r,' ',x);
end.
1. + n 3 8 9 8
2 n 7 5 m
m 8 5 n 3
ясно, что основание искомой с/с > 10. Проверим и удостоверимся, что в 11c|c действия выполняются верно.
11 c|c M=6 n = 4
ответ: основание системы 11, m=6, n=4
2. m m 65 n
+2 n 4 4 m
5 5 4 2 4 очевидно, что основание искомой с/с > 6.
Проверим по действиям в 7 с/с, при сложении в столбик,
при m=3 и n=1
и удостоверимся, что всё верно.
ответ: осн. с\с = 7, m=3, n=1
3. пусть основание с\с будет X? тогда:
(4*X^2+X+5)*4 =2*X^3+2*X^2+6*X+6
раскрываем скобки, преобразуем и получаем уравнение:
(2*X - 14)*(X^2+1) = 0 ---> X=7
ответ:7