Відповідь:
#include <iostream>
#include <cstdlib>
#include <time.h>
using namespace std;
void randarr(int *A,int N){
for(int i = 0; i < N; i++){
A[i] = rand() % 10 + 1;
}
}
void printarr(int *A,int N){
for(int i = 0; i < N; i++){
cout << A[i] <<"\t";
}
}
void expression(int *A, int N,int k){
for(int i = 0; i < N; i++){
A[i] = A[i] + A[k];
}
}
int main(){
srand(time(NULL));
setlocale(LC_ALL , "Ukrainian");
int N,k;
cout << "Введiть кiлькiсть елементiв массиву N: ";
cin >> N;
cout << "Введiть число k( 1 < k < N): ";
cin >> k;
if(k < 1 || k > N){
cout << "Число введено невiрно..." << endl;
}
int *A = new int[N];
randarr(A,N);
printarr(A,N);
expression(A,N,k);
cout << endl;
printarr(A,N);
delete[] A;
return 0;
}
101₁₀ = 1100101₂
123₁₀ = 1111011₂
324₁₀ = 101000100₂
Объяснение:
101 / 2 = 50 + остаток 1
50 / 2 = 25 + остаток 0
25 / 2 = 12 + остаток 1
12 / 2 = 6 + остаток 0
6 / 2 = 3 + остаток 0
3 / 2 = 1 + остаток 1
1 / 2 = 0 + остаток 1
записываем остатки снизу вверх
101₁₀ = 1100101₂
123 / 2 = 61 + остаток 1
61 / 2 = 30 + остаток 1
30 / 2 = 15 + остаток 0
15 / 2 = 7 + остаток 1
7 / 2 = 3 + остаток 1
3 / 2 = 1 + остаток 1
1 / 2 = 0 + остаток 1
записываем остатки снизу вверх
123₁₀ = 1111011₂
324 / 2 = 162 + остаток 0
162 / 2 = 81 + остаток 0
81 / 2 = 40 + остаток 1
40 / 2 = 20 + остаток 0
20 / 2 = 10 + остаток 0
10 / 2 = 5 + остаток 0
5 / 2 = 2 + остаток 1
2 / 2 = 1 + остаток 0
1 / 2 = 0 + остаток 1
записываем остатки снизу вверх
324₁₀ = 101000100₂
16 это два в четвертой степени.