program z1;
var
i,j,m,k,z,x,l:integer;
begin
readln(m);
for i:=0 to m do begin z:=1;
if i=0 then z:=1 else begin
x:=i;
while x<>0 do begin
z:=z*4;
x:=x-1;
end; end;
if ((z<m) and (z*4>m)) then writeln(i);
if z=m then writeln(i-1);
end;
end.
program z2;
var
i,j,n,k,z,x,l:integer;
begin
readln(n);
for i:=0 to n do begin z:=1;
if i=0 then z:=1 else begin
x:=i;
while x<>0 do begin
z:=z*2;
x:=x-1;
end; end;
if ((z>n) and (z/2<n)) then writeln(i);
if z=n then writeln(i+1);
end;
end.
program z3;
var
i,j,n,k,z,x,s:integer;
begin
readln(n); s:=0;
for i:=1 to n do begin z:=1;
for j:=i to 2*i do
z:=z*j;
s:=s+z; end;
writeln(s);
end.
время 2 ночи
...думаю пора спать )
Поделитесь своими знаниями, ответьте на вопрос:
Составить алгоритм 1. две точки на плоскости заданы своим координатами. определите расстояние между ними 2. вводится натуральное число. напечатать последнюю цифру числа. 3. две точки на плоскости заданы своим координатами. определите какая из них находится дальше от начала координат. 4. коробка конфет стоит r рублей и k копеек. у покупателя имеется s рублей и nкопеек. сможет ли он совершить покупку? в случае недостатка определить, сколько денег надо добавить.
Последняя цифра числа - остаток деления на N, где N - основание системы счисления. Соответственно, последние две цифры - остаток от деления на N^2.
12₄ = 1*4 + 2 = 6₁₀
Выходит, что нам нужно найти все десятичные числа, которые не превосходят 40 и при делении на 16 дают остаток 12.
Общий вид таких чисел: k*16 + 6. K - любое целое неотрицательное число. Теперь просто подставляем.
если k = 0, то получается число 5.
если k = 1, то получается число 22.
если k = 2, то получается число 38.
Очевидно, что дальше мы выйдем за границы нужного нам диапазона.
ответ: 5, 22, 38