У исполнителя Вычислитель две команды, которым присвоены номера:
1. прибавь 2;
2. умножь на b
(b — неизвестное натуральное число; b ≥ 2).
Выполняя первую из них, Вычислитель увеличивает число на экране на 2, а выполняя вторую, умножает это число на b. Программа для исполнителя Вычислитель — это последовательность номеров команд. Известно, что программа 12111 переводит число 7 в число 51. Определите значение b.
#include <iostream>
#define tsar c++
using namespace std;
int segfault() {
int* ptr; ptr = 0;
return *ptr;
}
int main() {
unsigned int n; cin >> n;
unsigned int m; cin >> m;
auto array = new int*[n];
for (size_t idx = 0; idx < n; idx++) {
array[idx] = new int[m];
for (size_t idy = 0; idy < m; idy++)
cin >> array[idx][idy];
}
unsigned int a; cin >> a;
unsigned int b; cin >> b;
int res = 0;
for (size_t idx = a - 1; idx < b; idx++) {
for (size_t idy = 0; idy < m; idy++)
res += array[idx][idy];
}
cout << res;
delete array;
}
Объяснение:
Первая программа:
Const
N = 13;
Var
A,B:array[1..N] of integer;
i,j,m:integer;
k:byte;
Begin
Randomize;
Write('Исходный массив:');
For i:= 1 to N do
Begin
A[i]:=random(N);
Write(' ',A[i])
End;
WriteLn;
Write('Уникальные элементы:');
m:=0;
For i:= 1 to N do
Begin
k:=1;
For j:= 1 to N do
if i<>j then
if A[i]=A[j] then k:=0;
if k=1 then
Begin
m:=m+1;
B[m]:=A[i];
End
End;
For m:=1 to m do
Begin
A[m]:=B[m];
Write(' ',A[m])
End;
End.
Пример работы программы:
Исходный массив: 3 7 11 11 11 0 9 3 9 9 10 1 4
Уникальные элементы: 7 0 10 1 4
Вторая программа:
Var
A:array[1..10000] of integer;
n,Min,Max,B:integer;
Begin
Write('Введите размерность массива: ');ReadLn(n);
Write('Введите массив A(',n,'): ');
For n:= 1 to n do
Read(A[n]);
Min:=1;
Max:=1;
For n:= 2 to n do
Begin
if A[n]<Min then Min:=n;
if A[n]>Max then Max:=n;
End;
WriteLn('Min(A) = A[',Min,'] = ',A[Min]);
WriteLn('Max(A) = A[',Max,'] = ',A[Max]);
B:=A[Max];
A[Max]:=A[Min];
A[Min]:=B;
Write('A(',n,'):');
For n:= 1 to n do
Write(' ',A[n])
End.
Пример работы программы:
Введите размерность массива: 7
Введите массив A(7): 1 3 4 6 7 5 2
Min(A) = A[1] = 1
Max(A) = A[5] = 7
A(7): 7 3 4 6 1 5 2
Третья программа:
Const
n = 3;
m = 4;
Var
A:array[1..n,1..m] of integer;
B:array[1..m,1..n] of integer;
i,j:integer;
Begin
Randomize;
WriteLn('Исходная матрица:');
For i:= 1 to N do
Begin
For j:= 1 to M do
Begin
A[i,j]:=random(21)-10;
Write(A[i,j]:3,' ')
End;
WriteLn;
End;
WriteLn;
WriteLn('Транспонированная матрица:');
For i:= 1 to M do
Begin
For j:= 1 to N do
Begin
B[i,j]:=A[j,i];
Write(B[i,j]:3,' ')
End;
WriteLn
End;
End.
Пример работы программы:
Исходная матрица:
10 3 10 1
-4 9 -9 2
-1 4 2 1
Транспонированная матрица:
10 -4 -1
3 9 4
10 -9 2
1 2 1