Есть ли способ возвести в квадрат элементы массива с временной сложностью O (n)?Я попробовал два способа сделать это, но я думаю, что они оба O (N ^ 2) PS: я не могу использовать "*", только сложение / вычитание.
1.
#include <stdio.h>
int squr(int n, int j){
if(j == 0)
return 0;
else if(j > 0)
return(n + squr(n, j - 1));
else if (n < 0)
return(n + squr(n, j - 1));
}
void loop(int* arr, int count){
for(int n = 0; n < count; n++)
arr[n] = squr(arr[n], arr[n]);
}
2.
void squr(int* arr, int N){
for(int i = 0; i < N; i++){
for(int j = 0; j < i; j++)
sum += i;
arr[i] = sum;
sum = 0;
}
}