<span>а) Алгоритм
a:= 9 a=9
b:= a mod 5 b=4
b:= b*10 b=40
a:=b div 5-3 a=8-3=5 (сначала выполняем div, потом "-")
Ответ: </span>b=40<span>
</span><span>б) Алгоритм
a:= 123 а=123
b:= a div 10 b=12
b:= b/4+2 b=5
b:= b*25+2 b=127
a:= a+ b a=250
</span>Ответ: <span>b=127</span><span>
</span>
1 байт - 8 бит, следовательно числа -127 до 127.
#Python 3.X
n = int(input('n = '))
c2, c3 = 0, 0
for i in range(n):
x = int(input('Число {}: '.format(i + 1)))
if x % 2 == 0:
c2 += 1
elif x % 3 == 0:
c3 += 1
print('На 2 делится {} чисел, на 3 - {}.'.format(c2, c3))
Элементарно!
1) Разбиваем 27 монет на 3 кучки по 9 монет. Сравниваем 2 кучки.
Какая легче - в той и фальшивая монета. Если они равны, то фальшивая в третьей кучке, которую не взвешивали.
Получилась кучка из 9 монет, одна фальшивая. Осталось 2 взвешивания.
2) Точно также разбиваем 9 монет на 3 по 3 монеты и сравниваем две.
Какая легче - в той и фальшивая монета. Если они равны, то фальшивая в третьей кучке, которую не взвешивали.
Получилась кучка из 3 монет, одна фальшивая. Осталось 1 взвешивание.
3) Сравниваем 2 монеты. Какая легче - та и фальшивая.
Если они равны, то фальшивая третья, которую не взвешивали.
Под локальным максимумом, скорее всего, имеется в виду число, большее
чем оба его соседа, за исключением случая, когда соседом справа является
0. В таком случае достаточно однократно пройтись по всем числам, запоминая минимальное из расстояний между новым и предыдущим обнаруженными максимумами.
Программа (язык Pascal ABC.Net)
var i1,i2,i3:integer;
i:integer;
curr,minr,lastmax:integer;
begin
readln(i1,i2);
i:=2;
minr:=1000000;
repeat
readln(i3);
if (i2>i1) and (i2>i3) and (i3<>0) then begin
curr:=i-lastmax;
if curr<minr then minr:=curr;
lastmax:=i;
end;
i1:=i2;
i2:=i3;
i+=1;
until i2=0;
if minr=1000000 then writeln(0) else writeln(minr); {стоило бы добавить булевую переменную в качестве флага - был ли хоть один max, но вряд ли расстояние между ними превысит миллион :-}
end.