Var A,B:array[1..10000] of integer; i,j,M,N:integer; Begin Write('N = ');ReadLn(N); Write('Исходный массив: '); For i:= 1 to N do Begin A[i]:=random(10)+1; Write(A[i],' '); End; WriteLn; Write('Полученный массив: '); For i:= 1 to N-1 do Begin if A[i]>A[i+1] then M:=A[i] else M:=A[i+1]; j:=M-1; Repeat j:=j+1; Until (j mod A[i] = 0)and(j mod A[i+1] = 0); B[i]:=j; Write(B[i],' ') End; End.
//PascalABC.Net 3.2 function NOK(a, b: integer):integer; begin while a<>b do if a>b then a-=b else b-=a; result:=a; end;
begin var a:=ReadArrInteger('Вводите: ', readinteger('Размерность массива: ')); var b: array of integer; setLength(b, length(a)-1); for var i:=0 to length(a)-2 do b[i]:=(a[i]*a[i+1]) div NOK(a[i], a[i+1]); a.Println; b.Print; end.
б)X = 3*9(16)= 1**(8) тут или ошибка или нужно доказать что такого числа нет Минимальное 16ричное число при таких данных 309(16) = 777(10) Максимальное 8ричное число при таких данных 177(8) = 127(10) Так что такого числа нет
если переписать условие иначе б)X = 3*9(16)= 1***(8)
тогда
# код на руби for i in 0..2000 p [i, i.to_s(16), i.to_s(8)] if i%16==9 and (i/16/16)==3 and i/8/8/8==1 end
Удобнее всего решать с использованием промежуточной двоичной системы, поскольку 16=2⁴, в 8=2³. В силу этого каждая шестнадцатиричная цифра изображается четырьмя битами (тетрадой), а каждая восьмеричная - тремя (триадой). Заменим неизвестные биты символом Х. 1010₁₆ = ХХХ ХХ1 010₈ Запишем изображения битов друг под другом с учетом известной нам информации. Х Х Х Х 1 0 1 0 Х Х Х Х Х 1 0 1 0 Теперь известные биты в конце чисел можно отбросить Х Х Х Х Х Х Х Х Х Очевидно, во втором (восьмеричном числе первый бит нулевой, поскольку оба числа в двоичной записи одинаковы и остается только ₂. Эти четыре бита (обозначим их IJKL) могут дать 16 комбинаций. Но требование, чтобы восьмеричное число имело три цифры, старшая из которых не может быть нулем, запрещает комбинацию IJ=00, поэтому 4 комбинации из 16 надо вычеркнуть. Останется 12.
A,B:array[1..10000] of integer;
i,j,M,N:integer;
Begin
Write('N = ');ReadLn(N);
Write('Исходный массив: ');
For i:= 1 to N do
Begin
A[i]:=random(10)+1;
Write(A[i],' ');
End;
WriteLn;
Write('Полученный массив: ');
For i:= 1 to N-1 do
Begin
if A[i]>A[i+1] then M:=A[i]
else M:=A[i+1];
j:=M-1;
Repeat
j:=j+1;
Until (j mod A[i] = 0)and(j mod A[i+1] = 0);
B[i]:=j;
Write(B[i],' ')
End;
End.