Каждый раз делишь на два и записываешь остаток, потом записываешь наоборот.
123/2 - остаток 1
61/2 - остаток 1
30/2 - остаток 0
15/2 - остаток 1
7/2 - остаток 1
3/2- остаток 1
под конец всегда нужно добавлять единицу
123 = 1111011
67/2 - остаток 1
33/2 - остаток 1
16/2 - остаток 0
8/2 - остаток 0
4/2 - остаток 0
2/2 - остаток 0
и под конец всегда нужно добавлять единицу
67=1000011
// PascalABC.NET 3.3, сборка 1611 от 06.01.2018
// Внимание! Если программа не работает, обновите версию!
begin
var (x,n):=ReadInteger2('x,n =');
var ans :=1;
while (n > 0)do
begin
ans*=x; dec(n);
end;
Writeln(ans);
end.
<u>Пример:</u>
x,n = 2 10
1024
Var a : array[1..n] of integer;
b,i : integer;
begin
Randomize;
for i:=1 to n do
begin
a[i]:=random(41)+10;
write(a[i],' ');
end;
writeln;
b:=a[1]; a[1]:=a[n]; a[n]:=b;
for i:=1 to n do write(a[i],' ');
writeln
end.
1) а). 117₁₀=1110101₂
б).217₁₀=11011001₂
в).317₁₀=100111101₂
2).а). 12*22*7=1848 бит
б). 1848₁₀=11100111000₂
<span>В Паскале:
if <условие> then <оператор 1> else <оператор 2></span>