Can you Anyone solve this problem... There is given one array lets say Arr[n]( n is the size of array). You have to store multiplication of all elements of Arr[n] except element Arr into a array OutVar. Example: Code: Suppose given am array as Arr[5]={1,2,3,4,5} Then OutVar[0]=Arr[1]*Arr[2]*Arr[3]*Arr[4] OutVar[1]=Arr[0]*Arr[2]*Arr[3]*Arr[4] OutVar[2]=Arr[0]*Arr[1]*Arr[3]*Arr[4] OutVar[3]=Arr[0]*Arr[1]*Arr[2]*Arr[4] OutVar[4]=Arr[0]*Arr[1]*Arr[2]*Arr[3]* Condition Apply: 1. Time Complexity should be O(n) (No matter for space better If you minimize space also) 2. Division(/) or Modular division(%) are not allowed.
The code would be something like this I suppose: Code: int main() { int arr[n],OutVar[n2]; int counter1,counter2,result; result=0; for(counter1=0; counter1<n2; counter1++) { for(counter2=0; counter2<n; counter2++) { if counter2=counter1 continue; result=result*arr[counter2]; } OutVar[counter1]=result; result=1; } }
The code would be something like this I suppose: Code: int main() { int arr[n],OutVar[n2]; int counter1,counter2,result; result=1; for(counter1=0; counter1<n2; counter1++) { for(counter2=0; counter2<n; counter2++) { if counter2=counter1 continue; result=result*arr[counter2]; } OutVar[counter1]=result; result=1; } }
Can this be the solution? Code: void main() { for(int cnt = 0; cnt < 5; ++cnt) { OutVar[cnt] = Arr[(i+1)%5] *Arr[(i+2)%5]*Arr[(i+3)%5]*Arr[(i+4)%5]; } }
Nice approch!!! But sorry dear i forgot to mention you cant use division or modular division operator.